微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP基本排序冒泡排序、快速排序、选择排序、插入排序、二分法排序

冒泡排序:

function bubbleSort($array){

$len=count($array);

//该层循环控制 需要冒泡的轮数

for($i=1;$i<$len;$i++){

//该层循环用来控制每轮 冒出一个数 需要比较的次数

for($k=0;$k<$len-$i;$k++){

if($array[$k]>$array[$k+1]){

$tmp=$array[$k+1];

$array[$k+1]=$array[$k];

$array[$k]=$tmp;

}

}

}

return $array;

}

快速排序:

function quickSort($array){

if (count($array) <= 1) return $array;

$key=$array[0];

$left_arr=array();

$right_arr=array();

for($i=1;$i<count($array);$i++){

if($array[$i]<=$key){

$left_arr[]=$array[$i];

}else{

$right_arr[]=$array[$i];

}

}

$left_arr=quickSort($left_arr);

$right_arr=quickSort($right_arr);

return array_merge($left_arr,array($key),$right_arr);

}

选择排序:

function selectSort($array) {

//双重循环完成,外层控制轮数,内层控制比较次数

$len=count($array);

for($i=0; $i<$len-1; $i++) {

//先假设最小的值的位置

$p = $i;

for($j=$i+1; $j<$len; $j++) {

//$array[$p] 是当前已知的最小值

if($array[$p] > $array[$j]) {

//比较,发现更小的,记录下最小值的位置;并且在下次比较时采用已知的最小值进行比较。

$p = $j;

}

}

//已经确定了当前的最小值的位置,保存到$p中。如果发现最小值的位置与当前假设的位置$i不同,则位置互换即可。

if($p != $i) {

$tmp = $array[$p];

$array[$p] = $array[$i];

$array[$i] = $tmp;

}

}

return $array; //返回最终结果

插入排序:

function insertSort($array) {

$len=count($array);

for($i=1,$i<$len; $i++) {

$tmp = $array[$i];

//内层循环控制,比较并插入

for($j=$i-1;$j>=0;$j--) {

if($tmp < $array[$j]) {

//发现插入的元素要小,交换位置,将后边的元素与前面的元素互换

$array[$j+1] = $array[$j];

$array[$j] = $tmp;

} else {

//如果碰到不需要移动的元素,由于是已经排序好是数组,则前面的就不需要再次比较了。

break;

}

}

}

return $array;

}

二叉树(二分法)排序:

/**

* 递归方法实现二分查找法.

* @param Array数组

* @param low 数组第一位置

* @param high 最高

* @param k 要查找的值.

* @return 返回值. */

function binSearch($array,$low,$high,$k){

if ($low <= $high){

$mid = intval(($low+$high)/2);

if ($array[$mid] == $k){

return $mid;

}elseif ($k < $array[$mid]){

return binSearch($array,$mid-1,$k);

}else{

return binSearch($array,$mid+1,$k);

}

}

return -1;

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐