PHP常用算法的方法实现(冒泡、选择、插入、快排、二分查找)
以前说起写算法,基本上都是拿C语言来写,因为用C可以更清楚的理解各种排序算法和数据结构。今天遍换成使用PHP语言来写几个常用的算法。
这次要写的算法包括:
- 冒泡排序
- 插入排序
- 选择排序(直接)
- 快速排序
- 二分查找
冒泡:
<?php
$arr = array(4,3,5,6,8,0,10,15,11);
echo implode(' ',$arr);
//冒泡排序 最坏 平均O(N^2) 最好O(N)
function BubbleSort($arr){
$length = count($arr);
if($length <= 1){
return $arr;
}
for($i=0;$i<$length;$i++){
for($j=0;$j<$length-$i-1;$j++){
if($arr[$j] > $arr[$j+1]){
$tmp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $tmp;
}
}
}
return $arr;
}
echo "\nBubbleSort:\n";
echo implode(' ',BubbleSort($arr))."\n";
?>