交换排序之冒泡排序

来源:互联网 发布:安邦 知乎 编辑:程序博客网 时间:2024/05/16 02:12

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


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

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

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

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

51 333333 33 17

33 515151 17 28

62 626217 28 33

96 871728 51 51

87 172851 51 51

17 285162 62 62

28 518787 87 87

51 969696 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);

原创粉丝点击