越来越多的公司喜欢在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.'&nbsp ';

}

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.'&nbsp; ';

}

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.'&nbsp; ';

}

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."&nbsp;&nbsp;";

}

相关文章:

  • 2022-12-23
  • 2021-11-30
  • 2021-11-30
  • 2021-10-29
  • 2022-03-01
  • 2021-05-26
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-14
  • 2021-09-09
  • 2021-12-08
  • 2022-12-23
  • 2021-11-30
相关资源
相似解决方案