加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

[PHP]算法-堆排序的PHP实现

发布时间:2020-05-25 23:01:40 所属栏目:PHP 来源:互联网
导读:1.堆(二叉堆):可以视为一棵完全的二叉树,除了最底层之外,每一层都是满的,这使得堆可以利用数组来表示,每一个结点对应数组中的一个元素2.给出某个结点的下标,可以计算出父结点的和孩子结点的下标; parent(i)=floor(i/2) left(i)=2i right=2i+13.最大堆和最小堆

<div class="cnblogs_code">

1.堆(二叉堆):可以视为一棵完全的二叉树,除了最底层之外,每一层都是满的,这使得堆可以利用数组来表示,2.给出某个结点的下标,可以计算出父结点的和孩子结点的下标; parent(i)=(i/2) left(i)=2i right=2i+1
3.最大堆和最小堆,最大堆:根结点是最大值,最小堆:4.堆排序就是把最大堆堆顶的最大数取出,剩余的堆继续调整为最大堆,再次将堆顶的最大数取出,5.最大堆调整(维护最大堆,子节点永远小于父结点) ;创建最大堆(把一个数组调整成最大堆的数组);堆排序(创建最大堆,交换,,index,heapSize) 
    iMax,iLeft, =index;iLeft=2*index+1;iRight=2*index+2,,) 
    iParent=((size-1)/2 i=iParent;i>=0;i--,i,,heapSize);
     (int i = heapSize - 1; i > 0; i--,i); 
         maxHeapify(,i);
swap(&,,=[[]=[[]= heapSort(&=(,); ( = - 1; > 0; --,); maxHeapify(,); buildMaxHeap(&,=((-1)/2); (=;>=0;--){ maxHeapify(,,); maxHeapify(&,,=0;=0;=0(==2*+1=2*+2(< && []>[=(< && []>[=(!=,==(2,1,3,5,9,6();

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读