php常用排序
2017-10-09 12:44
162 查看
冒泡排序
function bubble_sort($arr) {
}
归并排序
function Merge(&$arr, $left, $mid, $right) {
}
function MergeSort(&$arr, $left, $right) {
}
二分查找-递归
function bin_search($arr,$low,$high,$value) {
}
二分查找-非递归
function bin_search($arr,$low,$high,$value) {
}
快速排序
function quick_sort($arr) {
}
选择排序
function select_sort($arr) {
}
插入排序
function insertSort($arr) {
}
function bubble_sort($arr) {
$n=count($arr); for($i=0;$i<$n-1;$i++){ for($j=$i+1;$j<$n;$j++) { if($arr[$j]<$arr[$i]) { $temp=$arr[$i]; $arr[$i]=$arr[$j]; $arr[$j]=$temp; } } } return $arr;
}
归并排序
function Merge(&$arr, $left, $mid, $right) {
$i = $left; $j = $mid + 1; $k = 0; $temp = array(); while ($i <= $mid && $j <= $right) { if ($arr[$i] <= $arr[$j]) $temp[$k++] = $arr[$i++]; else $temp[$k++] = $arr[$j++]; } while ($i <= $mid) $temp[$k++] = $arr[$i++]; while ($j <= $right) $temp[$k++] = $arr[$j++]; for ($i = $left, $j = 0; $i <= $right; $i++, $j++) $arr[$i] = $temp[$j];
}
function MergeSort(&$arr, $left, $right) {
if ($left < $right) { $mid = floor(($left + $right) / 2); MergeSort($arr, $left, $mid); MergeSort($arr, $mid + 1, $right); Merge($arr, $left, $mid, $right); }
}
二分查找-递归
function bin_search($arr,$low,$high,$value) {
if($low>$high) return false; else { $mid=floor(($low+$high)/2); if($value==$arr[$mid]) return $mid; elseif($value<$arr[$mid]) return bin_search($arr,$low,$mid-1,$value); else return bin_search($arr,$mid+1,$high,$value); }
}
二分查找-非递归
function bin_search($arr,$low,$high,$value) {
while($low<=$high) { $mid=floor(($low+$high)/2); if($value==$arr[$mid]) return $mid; elseif($value<$arr[$mid]) $high=$mid-1; else $low=$mid+1; } return false;
}
快速排序
function quick_sort($arr) {
$n=count($arr); if($n<=1) return $arr; $key=$arr[0]; $left_arr=array(); $right_arr=array(); for($i=1;$i<$n;$i++) { if($arr[$i]<=$key) $left_arr[]=$arr[$i]; else $right_arr[]=$arr[$i]; } $left_arr=quick_sort($left_arr); $right_arr=quick_sort($right_arr); return array_merge($left_arr,array($key),$right_arr);
}
选择排序
function select_sort($arr) {
$n=count($arr); for($i=0;$i<$n;$i++) { $k=$i; for($j=$i+1;$j<$n;$j++) { if($arr[$j]<$arr[$k]) $k=$j; } if($k!=$i) { $temp=$arr[$i]; $arr[$i]=$arr[$k]; $arr[$k]=$temp; } } return $arr;
}
插入排序
function insertSort($arr) {
$n=count($arr); for($i=1;$i<$n;$i++) { $tmp=$arr[$i]; $j=$i-1; while($arr[$j]>$tmp) { $arr[$j+1]=$arr[$j]; $arr[$j]=$tmp; $j--; if($j<0) break; } } return $arr;
}
相关文章推荐
- php 常用数组排序
- PHP常用排序
- 常用PHP数组排序函数归纳
- PHP数组常用操作与常用排序函数
- php 常用的算数排序
- PHP常用的排序和查找算法
- 【算法与数据结构必备】PHP常用排序算法:冒泡,快速排序,插入排序(一维数组)
- php中常用的排序方法
- PHP常用的四种排序方法及二种查找方法
- PHP实现常用的排序和两个查找
- PHP常用的四种排序
- 常用PHP数组排序函数归纳
- PHP数组排序常用函数的区别一谈
- PHP常用的四种排序方法及二种查找方法
- 四种常用排序方法的基本思想和PHP实现源代码
- php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
- PHP常用排序算法 冒泡排序 快速排序 插入排序
- 关于常用到的几个排序,php的实现
- php中的常用数组函数(八) 排序函数汇总(sort、rsort、usort、asort、uasort、arsort、ksort、uksort、krsort、natsort、natcasesort、array_multisort)
- PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】