php伪代码排序,PHP实现排序算法

一、冒泡排序

大O符号:order,译为阶,也可以理解为数量级。

冒泡排序原理步骤

每一轮排序找到最大的值,放在数组的最后,并且,排好序的数不再参与下一轮的排序;

每一轮的排序规则是:每次从第一个数开始,与其右边的数进行比较,大的值放到右边,右边的值再依次往下进行比较,直到进行到未排序数的最后一个数为止;

排序的结束:当未排序的数只有一个时,就完成了排序。

冒泡排序伪代码

数组长度:length

function bubble_sort(&$a){

$i从0到length-1

$j从0到length-1-$i     //$i表示经过$i次循环后已排好序的个数,length-1-$i表示对未排序的数进行排序

//对$a[$j]和$a[$j+1]排序    //随着$j递增,较大的数参与下一次排序,直到比较到最后一个未排序数

如果$a[$j]>$a[$j+1],交换两数值

代码实现

//两数交换的函数

function swap(&$x,&$y){

$t = $x;

$x = $y;

$y = $t;

}

function bubble_sort(&$a){

$i;

$j;

$len = count($a);

for($i = 0;$i 

for($j = 0;$j 

if($a[$j] > $a[$j+1])

swap($a[$j],$a[$j+1];

}

$arr = array(4,8,1,9,3,7,6,2);

bubble_sort($arr);

print_r($arr);

排序次数

冒泡排序是与插入排序拥有相等的运行时间,但是两种算法在需要的交换次数却很大地不同。在最好的情况,冒泡排序需要O(n^2)次交换,而插入排序只要最多O(n)交换。

特点

最易理解,实现最简单,但是对于少数元素之外的数列排序是很没有效率的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值