php1006php,php如何实现排序算法

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

7fbc14f1fb90043eeb9cedf2fce031f5.png

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编程(视频)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值