当前位置: 首页 > news >正文

wordpress主题作者bseo在线排名优化

wordpress主题作者b,seo在线排名优化,个人可以做企业网站,java做网站需要的接口堆排序过程: >建立堆(大根堆) >得到堆顶元素,为最大元素 >去掉堆顶,将堆最后一个元素放到堆顶,此时可通过一次调整使堆重新有序 >堆顶元素为第二大元素 >重复步骤3,直到堆变空 此时是建立堆后的大根堆模型 将…

堆排序过程:

>建立堆(大根堆)

>得到堆顶元素,为最大元素

>去掉堆顶,将堆最后一个元素放到堆顶,此时可通过一次调整使堆重新有序

>堆顶元素为第二大元素

>重复步骤3,直到堆变空

 此时是建立堆后的大根堆模型

将9拿下来,为了节约内存,提高利用率,可以将9放到3(最后一个元素),然后3放到堆顶,再此经过调整,3放到合适的位置并且除了9的最大元素又被调到堆顶。

每次经过调整,整个堆的最后几个元素不断形成有序区,即,大根堆在不断变小

首先我们要调整一个无序列表等成为一个大根堆(先将列表看成一个堆)

 我们要从最末尾开始调整,才能保证大元素一步步被调上去

 

 我们可以看出是从最后一个元素的根节点开始调整,即5,9,1...

列表长为n=len(li),所以5的下标为(n-2)//2

我们可以先写调整部分的代码:

def sift(li,low,high):   # 堆的第一个元素和最后一个元素i=lowj=2*i+1       # j刚开始是左孩子tmp=li[low]   # 把堆顶存起来while j<=high: # 只要j位置有数,没有越界if j+1<=high and li[j+1]>li[j]:   # 保证右孩子不越界,因为最右侧列表是有序区,不是堆j=j+1    # j指向右孩子          # 与左右孩子对比前,先左右孩子比较if li[j]>tmp:li[i]=li[j]i=jj=2*i+1else:li[i]=tmpbreakelse:li[i]=tmp  # 到最后了,通过计算左孩子已经超出high了

堆排序的代码:

def heap_sort(li):n=len(li)for i in range((n-2)//2,-1,-1):   # 倒着走,一直往左遍历,第一个元素的前一个元素就是-1下标# i表示建堆时调整的部分的根的下标sift(li,i,n-1)   # 避免麻烦直接选最后,high作用只有一个就是确定别越界print(li)# 建堆完成了for i in range(n-1,-1,-1):     # 一直确定堆最后元素# i一直指向当前堆的最后一个元素li[0],li[i]=li[i],li[0]sift(li,0,i-1)

实验代码:

li=[i for i in range(12)]
random.shuffle(li)
print(li)heap_sort(li)
print(li)

可以看出堆排序时间复杂度为O(nlogn)

当然python内部也有堆的内置模块

import heapq
import randomli=list(range(12))
random.shuffle(li)print(li)heapq.heapify(li)   # 默认建立小根堆
n=len(li)
for i in range(n):print(heapq.heappop(li))   # 每次弹出一个元素

http://www.yidumall.com/news/75407.html

相关文章:

  • 怎么说服客户做网站北京网站建设开发公司
  • 中山电商网站制作做网站哪个公司最好
  • 镇江建站推广报价百度网盘在线登录
  • 免费网络营销课程化工网站关键词优化
  • 社区教育网站建设项目计划书上海seo推广方法
  • 深圳专业高端网站建设费用成都门户网站建设
  • 玉树州公司网站建设南京高端品牌网站建设
  • 做网站写代码好还是模板网站搜索
  • 常州市做网站的公司全网营销推广系统
  • 纺织面料做哪个网站好百度一下搜索引擎大全
  • c 做网站好嘛肇庆网站搜索排名
  • Linux做视频网站网速均衡9个广州seo推广神技
  • 做网站和做程序一样吗淘宝站外引流推广方法
  • 电子元器件网站建设百色seo关键词优化公司
  • 现在.net做网站的多吗经典品牌推广文案
  • 肯尼亚网站域名百度招聘
  • 网站建设谈单情景对话品牌网
  • 动态网站建设论文搜索引擎推广的费用
  • wordpress 新浪主题seo怎样才能优化网站
  • 做网站是干嘛seo网站管理
  • 老鹰画室网站哪家做的实时热搜榜榜单
  • 建一个购物网站大约多少钱吸引人的微信软文范例
  • 后台做网站的题无锡哪里有做网站的
  • 长沙房产网最新楼盘地图优化设计四年级上册语文答案
  • 建设政府网站意义近两年成功的网络营销案例
  • 湛江市品牌网站建设怎么样整站seo排名外包
  • 网站关键词库怎么做百度扫一扫网页版
  • 学院网站建设推进会软文生成器
  • 东莞专业微网站建设推广正规网站建设服务
  • 河南有名的做网站公司购买域名的网站