站长资讯网
最全最丰富的资讯网站

php如何实现排序算法

php实现排序算法的方法:1、冒泡排序,两两相比,每循环一轮就不用再比较最后一个元素;2、选择排序,选定一个作为基本值,剩下的和这个比较,再调换位置。

php如何实现排序算法

php实现排序算法的方法:

1、冒泡排序:

两两相比,每循环一轮就不用再比较最后一个元素了,因为最后一个元素已经是最大或者最小。

function maopaoSort ($list) {     $len = count($list);     for ($i = 0; $i < $len - 1; $i++) {         for ($j = 0; $j < $len - $i - 1; $j++) {             if ($list[$j] > $list[$j + 1]) {                 $tmp = $list[$j];                 $list[$j] = $list[$j + 1];                 $list[$j + 1] = $tmp;             }         }     }     return $list; }

2、选择排序:

选定一个作为基本值,剩下的和这个比较,然后调换位置。

function xuanzeSort ($list) {     $len = count($list);     for ($i = 0; $i < $len - 1; $i++) {         $pos = $i;         for ($j = $i + 1; $j < $len; $j++) {             if ($list[$pos] > $list[$j]) {                 $pos = $j;             }         }         if ($pos != $i) {             $tmp = $list[$pos];             $list[$pos] = $list[$i];             $list[$i] = $tmp;         }     }     return $list; }

3、快速排序:

原理就是拿出一个标尺值,然后分为左右两个数组,分别对比

function kuaisuSort ($list) {     $len = count($list);     if ($len <= 1) {//递归出口         return $list;     }     $base = $list[0];//选择一个比较值     $leftList = $rightList = [];     for ($i = 1; $i < $len; $i++) {         if ($base > $list[$i]) {             $leftList[] = $list[$i];         } else {             $rightList[] = $list[$i];         }     }     //递归分别再处理左右两边的数组     $leftList = kuaisuSort($leftList);     $rightList = kuaisuSort($rightList);     return array_merge($leftList, [$base], $rightList); }

4、插入排序:

假设前面的数都是排好顺序的,要把第n个数插入到有序里

function charuSort ($list) {     $len = count($list);     for ($i = 1; $i < $len; $i++) {         $tmp = $list[$i];//获取对比元素         for ($j = $i - 1; $j > 0; $j--) {             if ($list[$j] > $tmp) {                 $list[$j + 1] = $list[$j];                 $list[$j] = $tmp;             } else {                 break;             }         }     }     return $list; }

相关学习推荐:php编程(视频)

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号