堆排序(PHP实现)
来源:互联网 发布:jquery 1.4min.js下载 编辑:程序博客网 时间:2024/06/06 00:12
<?PHP$arr = [3,5,9,1,6,8,55,2,7,23,4,111];$sortArr = sort_heap($arr);var_dump($sortArr);//推排序function sort_heap($arr){ $newArr = []; while (count($arr) > 1) { $n = count($arr);//数组长度 for ($j = floor($n / 2); $j >= 0; $j--) {//从中间位置开始遍历 for ($p = $j,$child = $p * 2 + 1; $p * 2 + 1 < $n;) {//到最后一个有子节点的位置结束 if (isset($arr[$child + 1]) && $arr[$child] > $arr[$child + 1]) {//选择最大的子节点 $child++; } if ($arr[$child] < $arr[$p]) { swap($arr[$child] , $arr[$p]);//交换子节点和父节点 $p = $child; } else { break; } } } swap($arr[$n - 1] , $arr[0]);//将开始节点和最后节点交换 $max = array_pop($arr);//将最大的那个节点放置在结果数组中 $newArr[] = $max; } $newArr[] = array_pop($arr);//将最后的那个节点放置在结果数组中 return $newArr;}function swap(&$a,&$b){ $a = $a ^ $b; $b = $a ^ $b; $a = $a ^ $b;}
0 0
- 堆排序(PHP实现)
- php实现堆排序
- PHP实现堆排序
- php实现堆排序算法
- 堆以及php实现堆排序
- PHP实现排序算法----堆排序(Heap Sort)
- 堆排序算法与PHP实现
- PHP堆排序实现与分析
- php实现堆,将数组进行堆排序
- 堆排序(java实现)
- 堆排序(C++实现)
- 堆排序(java实现)
- 堆排序(java实现)
- 堆排序(c实现)
- 堆排序(Java实现)
- 堆排序(JAVA实现)
- 堆排序(C++实现)
- 堆排序(Java实现)
- java多线程之CyclicBarrier类基本用法
- CString的GetBuffer用法,GetBuffer本质,GetBuffer常见问题解决方法
- MoveWindow and SetWindowPos
- 姚博文 postgresql listen/notify push message
- JAVA语法 II - 访问修饰符
- 堆排序(PHP实现)
- UIScrollView添加手势显示和隐藏键盘
- 注释编译法
- 关于mysql自增字段问题
- hadoop单元测试
- @Override must override a superclass method 问题解决
- 异常-The project: upload_client1 which is referenced by the classpath, does not exist.
- shell 下查看及销毁进程
- IIS7.5迁移 - HTTP 错误 404.0 - Not Found-0x80070002错误分析及解决过程