返回

php 排序算法

发布时间:2022-10-23 05:31:46 372

越来越多的公司喜欢在PHP程序员的笔试题中增加排序算法部分,以此来印证PHP程序的计算机基础。今天给大家列出4中常见的PHP排序算法。

1.冒泡排序:(优化过后的)

代码如下:

//冒泡排序

$array = array(11,-3,51,-7,9,100,2,-56,32,21);

$flag = false;

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

for ($j = 0;$j < count($array) - $i;$j++){

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

$temp = $array[$j];

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

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

$flag = true;

}

}

if (!$flag){

break;

}

$flag = false;

}


foreach ($array as $value){

echo $value.'  ';

}

2.选择排序(自己优化了下)

代码如下:

$array3 = array(11,-3,51,-7,9,100,2,-56,32,21);

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

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

if ($array3[$j] < $array3[$i]){

$temp = $array3[$i];

$array3[$i] = $array3[$j];

$array3[$j] = $temp;

}

}

}


foreach ($array3 as $value){

echo $value.'  ';

}

3.插入排序:

代码如下:

$array4 = array(11,-3,51,-7,9,100,2,-56,32,21);

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

$insertVal = $array4[$i];

$insertIndex = $i - 1;

while ($insertIndex >=0 && $insertVal < $array4[$insertIndex]){

$array4[$insertIndex + 1] = $array4[$insertIndex];

$insertIndex--;

}

$array4[$insertIndex + 1] = $insertVal;

}

foreach ($array4 as $value){

echo $value.'  ';

}

4.快速排序

代码如下:

function quickSort($arr){

if (count($arr) < 1){

return $arr;

}

$key = $arr[0];

$left_arr = array();

$right_arr = array();

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

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

$left_arr[] = $arr[$i];

} else {

$right_arr[] = $arr[$i];

}

}

$left_arr = quickSort($left_arr);

$right_arr = quickSort($right_arr);

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

}

$arr = array(11,-3,51,-7,9,100,2,-56,32,21);

$arr2= quickSort($arr);

foreach ($arr2 as $key=>$value){

echo $value."  ";

}


特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
Laravel实践-创建自定义Facade 2022-10-23 05:03:10