• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
孙龙 程序员
少时总觉为人易,华年方知立业难
博客园    首页    新随笔    联系   管理    订阅  订阅
php 排序算法

越来越多的公司喜欢在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;";

}

本文来自博客园,作者:孙龙-程序员,转载请注明原文链接:https://www.cnblogs.com/sunlong88/articles/8681510.html

posted on 2018-03-31 11:34  孙龙-程序员  阅读(111)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3