交换排序之冒泡排序

交换排序的主要思路就是在排序过程中,不断比较待排序序列中相邻的两个数据,如果次序相反,则将其位置交换,从而达到排序的目的,冒泡排序和快速排序都属于交换排序


下面我们介绍冒泡排序的基本原理:

冒泡排序是一种比较简单的排序算法,基本思想就是对所有的相邻的记录的关键字进行比较,如果次序不对就将其交换,从而最终使其达到一致的效果;

由于排序过程中大的数据下沉,小的数据上浮,所以称之为冒泡排序:

待排序序列        第一趟      第二趟    第三趟    第四趟        第五趟

51 3333 33 33 17

33 5151 51 17 28

62 6262 17 28 33

96 8717 28 51 51

87 1728 51 51 51

17 2851 62 62 62

28 5187 87 87 87

51 9696 96 96 96



最多经过n趟排序就可以达到整个序列的有序状态

总的时间复杂度为o(n2);



php代码

<?php
/**
 * 冒泡排序
 */


$a = array(1,9,3,22,6,3,2);


$length = count($a);


for ($i = 0;$i<$length;$i++)
{
for ($j = 0; $j < $length - $i;$j++) 
{
if(isset($a[$j+1]) && $a[$j] > $a[$j+1])
{
$tmp = $a[$j];
$a[$j] = $a[$j+1];
$a[$j+1] = $tmp;
}
}
}
var_dump($a);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值