PHP中堆排序的原理是什么

  介绍

小编给大家分享一下PHP中堆排序的原理是什么,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!


 maxHeapify(数组、索引heapSize)//最大堆调整
  iMax, iLeft iRight
  而真正的
  iMax=指数;iLeft=2 *指数+ 1;iRight=2 *指数+ 2
  如果根结点小于左右子树里结点值,就交换一下这两个值
  利用第三方变量,交换下两个值
  buildMaxHeap(数组)//创建最大堆,把一个数组调整成最大堆的数组
  iParent地板=((号)/2)
  因为我=iParent; i>=0,我——
  maxHeapify(数组、我、大小)
  排序(arr)
  buildMaxHeap(数组,heapSize);//创建最大的堆
  for (int i=heapSize - 1;我在;0;我(){
  交换(数组,0,我);//交换第一个和最后一个
  maxHeapify(数组,0,i);//维护最大堆,尺寸小了一个
//交换元素   函数交换(,arr美元,一美元,美元b) {   temp=arr美元(美元);   arr[美元]=arr美元[b]美元;   arr [b]美元=temp美元;   }//排序的入口函数   函数堆排序(及美元arr) {   美元$ heapSize=count (arr);   buildMaxHeap (arr, heapSize美元);//创建最大的堆   (i=heapSize - 1美元;我比美元;0;我——美元){   arr交换($ 0 $ i);//交换第一个和最后一个   arr maxHeapify ($ 0 $ i);//维护最大堆,尺寸小了一个   }   }//创建最大堆的函数   函数buildMaxHeap (heapSize美元及美元arr) {   $ iParent=地板((heapSize-1美元)/2);//根据最后一个元素的索引值计算该结点根结点的索引是哪个   (我=$ iParent; i>美元=0;我——美元){//这个循环是循环的所有根结点   maxHeapify(加勒比海盗,我,美元heapSize美元);//维护最大的堆   }   }//维护最大的堆   函数maxHeapify (, arr美元,美元指数,heapSize美元){   iMax=0; iLeft=0;美元美元iRight=0;   而(真){   iMax=美元指数;   iLeft=2 * iMax + 1美元;   iRight=2 * iMax + 2美元;   如果(iLeft

看完了这篇文章,相信你对PHP中堆排序的原理是什么有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

PHP中堆排序的原理是什么