文档章节

堆排序

hc321
 hc321
发布于 05/22 10:53
字数 115
阅读 5
收藏 0
#堆调整
def adjust_heap(L,i,size):
    if i>size//2:
        return L
    maxx=i
    if i*2<size and L[maxx] < L[2*i]:
        maxx=2*i
    if i*2+1<size and L[maxx] < L[2*i+1]:
        maxx=2*i+1
    if L[maxx] != L[i]:
        L[i],L[maxx]=L[maxx],L[i]
        adjust_heap(L,maxx,size)
    return L

#堆排序
def heap_sort(L):
    size=len(L)
    for i in range(size//2,-1,-1):
        adjust_heap(L,i,size-1)
    for i in range(size-1,-1,-1):
        L[0], L[i] = L[i], L[0]
        adjust_heap(L,0,i)
L=[12,36,24,85,36,47,27,30,100,53,91]
heap_sort(L)
print(L)

© 著作权归作者所有

共有 人打赏支持
上一篇: 快速排序
下一篇: TextRank
hc321
粉丝 1
博文 67
码字总数 32581
作品 0
海淀
程序员
私信 提问
程序员必知的8大排序(java实现)

8种排序之间的关系:  1、 直接插入排序   (1)基本思想:   在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好...

小帅帅丶
2015/01/09
0
7
浅解前端必须掌握的算法(五):堆排序(下)

前言 虽然前端面试中很少会考到算法类的题目,但是你去比如像腾讯一样的大厂面试的时候就知道了,对基本算法的掌握对于从事计算机科学技术的我们来说,还是必不可少的,每天花上 10 分钟,轻...

程序猿何大叔
07/05
0
0
mysql 在orderby和limit混合使用时重复数据问题

# 问题背景 select * from table_1 order by field_1,field_2 limit 0,10;select * from table_1 order by field_1,field_2 limit 10,10; 这样两条分页sql在查询数据时有两条数据既出现在第一......

小孑
08/07
0
0
算法——堆排序

我们可以把任意优先队列编程一种排序方法。将所有元素插入一个查找最小元素的优先队列,然后再重复调用删除最小元素的操作来将他们按顺序删除。用无序数组实现的优先队列这么做相当于一次选择...

嘿胖丁
03/05
3
0
排序——堆排序法

一、堆排序法的概念 堆排序(Heap Sort)也是一种选择排序算法,堆排序是利用堆的特性进行排序的过程。 二、算法描述 堆是一个完全二叉树,树中每个节点对应于原始数据的一个记录,并且每个节...

翼动动空
2016/06/14
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

用any-loader封装jQuery的XHR —— 随便写着玩系列

哎,都说没人用JQuery啦,叫你别写这个。 其实我也是好高骛远使用过npm上某个和某个很出名的XHR库,嗯,认识我的人都知道我喜欢喷JQ,以前天天喷,见面第一句,你还用JQ,赶紧丢了吧。但我也...

曾建凯
今天
3
0
聊聊storm的AggregateProcessor的execute及finishBatch方法

序 本文主要研究一下storm的AggregateProcessor的execute及finishBatch方法 实例 TridentTopology topology = new TridentTopology(); topology.newStream("spout1", spout......

go4it
今天
3
0
大数据教程(7.5)hadoop中内置rpc框架的使用教程

博主上一篇博客分享了hadoop客户端java API的使用,本章节带领小伙伴们一起来体验下hadoop的内置rpc框架。首先,由于hadoop的内置rpc框架的设计目的是为了内部的组件提供rpc访问的功能,并不...

em_aaron
今天
5
0
CentOS7+git+github创建Python开发环境

1.准备CentOS7 (1)下载VMware Workstation https://pan.baidu.com/s/1miFU8mk (2)下载CentOS7镜像 https://mirrors.aliyun.com/centos/ (3)安装CentOS7系统 http://blog.51cto.com/fengyuns......

枫叶云
昨天
3
0
利用ibeetl 实现selectpicker 的三级联动

1. js 直接写在html页面上面,ibeetl 就可以动态地利用后台传上来的model List ,不需要每次点击都要ajax请求后台 2. 使用selectpicker 的时候,除了对selecct option的动态处理后,还需要 $("#...

donald121
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部