php中的几种常见排序办法
PHP有多种排序办法,本篇文章给各人引见几种常见的排序办法:冒泡排序、替换法排序、抉择法排序、拔出法排序、疾速排序。心愿对各人有所协助。
排序办法1:冒泡排序
function BubbleSort($arr) { // 取得数组总长度 $num = count($arr); // 正向遍历数组 for ($i = 1; $i < $num; $i++) { // 反向遍历 for ($j = $num - 1; $j >= $i ; $j--) { // 相邻两个数比拟 if ($arr[$j] < $arr[$j-1]) { // 暂存较小的数 $iTemp = $arr[$j-1]; // 把较年夜的放后面 $arr[$j-1] = $arr[$j]; // 较小的放前面 $arr[$j] = $iTemp; } } } return $arr; }
排序办法2:替换法排序
function ExchangeSort($arr){ $num = count($arr); // 遍历数组 for ($i = 0;$i < $num - 1; $i++) { // 取得以后索引的下一个索引 for ($j = $i + 1; $j < $num; $j++) { // 比拟相邻两个的值巨细 if ($arr[$j] < $arr[$i]) { // 暂存较小的数 $iTemp = $arr[$i]; // 把较年夜的放后面 $arr[$i] = $arr[$j]; // 较小的放前面 $arr[$j] = $iTemp; } } } return $arr; }
排序办法3:抉择法排序
function SelectSort($arr) { // 取得数组总长度 $num = count($arr); // 遍历数组 for ($i = 0;$i < $num-1; $i++) { // 暂存以后值 $iTemp = $arr[$i]; // 暂存以后地位 $iPos = $i; // 遍历以后地位当前的数据 for ($j = $i + 1;$j < $num; $j++){ // 假如有小于以后值的 if ($arr[$j] < $iTemp) { // 暂存最小值 $iTemp = $arr[$j]; // 暂存地位 $iPos = $j; } } // 把以后值放到算好的地位 $arr[$iPos] = $arr[$i]; // 把以后值换成算好的值 $arr[$i] = $iTemp; } return $arr; }
排序办法4:拔出法排序
function InsertSort($arr){ $num = count($arr); // 遍历数组 for ($i = 1;$i < $num; $i++) { // 取得以后值 $iTemp = $arr[$i]; // 取得以后值的前一个地位 $iPos = $i - 1; // 假如以后值小于前一个值切未到数组开端地位 while (($iPos >= 0) && ($iTemp < $arr[$iPos])) { // 把前一个的值日后放一名 $arr[$iPos + 1] = $arr[$iPos]; // 地位递加 $iPos--; } $arr[$iPos+1] = $iTemp; } return $arr; }
排序办法5:疾速排序
function QuickSort($arr){ $num = count($arr); $l = $r = 0; $left = $right = array(); // 从索引的第二个开端遍历数组 for ($i = 1;$i < $num; $i++) { // 假如值小于索引1 if ($arr[$i] < $arr[0]) { // 装入左索引数组(小于索引1的数据) $left[] = $arr[$i]; $l++; } else { // 不然装入右索引中(年夜于索引1的数据) $right[] = $arr[$i]; $r++; // } } // 假如左索引有值 则对左索引排序 if($l > 1) { $left = QuickSort($left); } // 排序后的数组 $new_arr = $left; // 将以后数组第一个放到最初 $new_arr[] = $arr[0]; // 假如又索引有值 则对右索引排序 if ($r > 1) { $right = QuickSort($right); } // 依据右索引的长度再次添加数据 for($i = 0;$i < $r; $i++) { $new_arr[] = $right[$i]; } return $new_arr; }
保举教程:《PHP视频教程》
以上就是详解php中的几种常见排序办法(附代码)的具体内容,更多请存眷资源魔其它相干文章!
标签: php 排序 php开发教程 php开发资料 php开发自学
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。