用php实现几种常见的排序算法
6页1、用用 phpphp 实现几种常见的排序算法(代码实例)实现几种常见的排序算法(代码实例)一、冒泡排序冒泡排序理解起来是最简单,但是时间复杂度(O(n2))也是最大的之一,实现代码如下:? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17function bubbleSort($arr) $len = count($arr);for ($i = 0; $i $arr$j) $t = $arr$i;$arr$i = $arr$j;$arr$j = $t; return $arr; $arr = 3,1,13,5,7,11,2,4,14,9,15,6,12,10,8; print_r(bubbleSort($arr);二、选择排序选择排序理解起来也比较简单,时间复杂度也是 O(n2),实现代码如下:? 1 2 3 4 5 6 7 8 9 10 11 12 13function selectSort($arr) $len = count($arr);for ($i = 0; $i = 0 $i = 0 $i-) $s = $i;$childIndex = $s
2、 * 2 + 1;while ($childIndex 0; $i-) $t = $arr$i;$arr$i = $arr0;$arr0 = $t;/ 调整第一个元素$s = 0;$childIndex = 1;while ($childIndex = $temp) $right-; if ($left $right) $arr$left+ = $arr$right; while ($left $right if ($left $right) $arr$right- = $arr$left; $arr$left = $temp;/ 把数组分成两部分,递归调用该函数quickSortRecursion($arr, $begin, $left - 1);quickSortRecursion($arr, $left + 1, $end);return $arr; $arr = 3,1,13,5,7,11,2,4,14,9,15,6,12,10,8; print_r(bubbleSort($arr);七、归并排序归并排序的时间复杂度也是 O(nlogn)。原理是:对于两个排序好的数组,分别遍历
3、这两个数组,获取较小的元素插入新的数组中,那么,这么新的数组也会是排序好的。代码如下:? 1 2 3 4 5 6 7 8 9 10 11 12 13 14function mergeSort($arr) $len = count($arr);$arr = mergeSortRecursion($arr, 0, $len - 1);return $arr; function mergeSortRecursion(/ 把数组不断拆分,只到只剩下一个元素,对于一个元素的数组,一定是排序好的mergeSortRecursion($arr, $begin, $mid);mergeSortRecursion($arr, $mid + 1, $end);$i = $begin;$j = $mid + 1;15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39$k = 0;$temp = array();/ 开始执行归并,遍历两个数组,从它们里面取较小的元素插入到新数组中while ($i = $mid else $temp$k+ = $arr$j+; while ($i = $mid) $temp$k+ = $arr$i+;while ($j = $end) $temp$k+ = $arr$j+;for ($i = 0; $i $k; $i+) $arr$i + $begin = $temp$i;return $arr; $arr = 3,1,13,5,7,11,2,4,14,9,15,6,12,10,8; print_r(bubbleSort($arr);
《用php实现几种常见的排序算法》由会员m****分享,可在线阅读,更多相关《用php实现几种常见的排序算法》请在金锄头文库上搜索。
DB2发生死锁情况时应该怎么处理
Python 为何能成最强编程语言
面试前必须要知道的Redis面试
MySQL下自动删除指定时间以前的记录的操作方法
深入理解FastCGI协议以及在PHP中的实现
MySQL数据库性能优化之硬件瓶颈分析
NoSQL数据库大全收集整理
2018 – 2019 年前端 JavaScript 面试题
PHP文件包含漏洞的形式总结
5种使用Python代码轻松实现数据可视化的方法
改进JavaScript和Bust的互操作性:深入认识wasm-bindgen组件
C#图片缩放平移从功能分析到编码实现
详解网络蜘蛛的安全隐患及预防方法
利用NAP解除安全隐患自动隐藏你的IP地址
解决分布式数据库和离线网络中原子性问题的新方法
bbed恢复数据遇到延迟块清除的问题
Oracle Data Redaction数据加密
linux下du和df结果不一致的原因及处理
基于QMP实现对qemu虚拟机进行交互
解读Java并发队列BlockingQueue
2023-08-28 7页
2023-08-15 11页
2020-05-10 4页
2020-05-10 4页
2020-05-10 6页
2020-05-10 5页
2020-05-10 5页
2020-05-10 3页
2020-05-10 5页
2020-05-10 4页