PHP排序
作者QQ:67065435 QQ群:669756510
本站内容全部为作者原创,转载请注明出处!
php冒泡排序
<?php //核心思想:从前到后,依次比较相邻的两个数,总是把较大的数后移,以将最大的数移动到最后,然后以此类推,将数据排列好。 function pop_sort(array $arr) { $n = count($arr); if($n < 2){ return $arr; } for ($i = 1; $i < $n; $i++) { for ($j = 0; $j < $n - $i; $j++) { if($arr[$j+1] < $arr[$j]){ $t = $arr[$j]; $arr[$j] = $arr[$j+1]; $arr[$j+1] = $t; } } } return $arr; }选择排序
<?php //核心思想:假设第一个数最小,然后依次和后面的数比较,遇到更小的数,则替代假设最小的数,然后以此类推,确定第二、第三...第N小的数。 function chose_sort(array $arr) { $n = count($arr); if($n < 2){ return $arr; } for($i = 0;$i < $n-1;$i++){ $min_index = $i; for($j = $i+1;$j < $n;$j++){ if($arr[$j] < $arr[$min_index]){ $min_index = $j; } } if($i != $min_index){ $t = $arr[$i]; $arr[$i] = $arr[$min_index]; $arr[$min_index] = $t; } } return $arr; }php快速排序
<?php //核心思想:假设数组某个数为数组的中间值,然后将比它小的数放在数组左边,将比它大的数放在数组右边,然后将分在左右的数组做相同递归处理,以得到最终结果。 function quick_sort($arr) { $n = count($arr); if ($n < 2) { return $arr; } $base[0] = $arr[0]; $leftArr = array(); $rightArr = array(); for ($i = 1; $i < $n; $i++) { if ($arr[$i] < $base[0]) { $leftArr[] = $arr[$i]; } else { $rightArr[] = $arr[$i]; } } $leftArr = quick_sort($leftArr); $rightArr = quick_sort($rightArr); return array_merge($leftArr, $base, $rightArr); }