排序算法之堆排序


1.保持最大堆的性质:

2.建立最大堆

3.堆排序 1 MAX_HEAPIPY(A,i) 2 l=left(i) 3 r=right(i) 4 if(l<heap-size(A) && a[l]>a[i]) 5 then largest=l; 6 else largest=i 7 if(r<heap-size(A) && a[r]>a[largest]) 8 then largest=r 9 if(largest != i) 10 then exchange A[i] <-> A[largest] 11 MAX_HEAPIFY(A,largest) 12 13 BUILD_MAX_HEAP(A) 14 head-size(A)=length(A) 15 for(i=length[A]>>1) downto 1 16 do MAX_HEAPIFY(A,i) 17 18 HEAP_SORT(A) 19 BUILD-MAX-HEAP(A) 20 for(i=length[A]) downto 2 21 do exchange A[1] <-> A[i] 22 heap_size[A]=heap_size(A)-1 23 MAX_HEAPIFY(A,1)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值