交换排序的主要思路就是在排序过程中,不断比较待排序序列中相邻的两个数据,如果次序相反,则将其位置交换,从而达到排序的目的,冒泡排序和快速排序都属于交换排序
下面我们介绍冒泡排序的基本原理:
冒泡排序是一种比较简单的排序算法,基本思想就是对所有的相邻的记录的关键字进行比较,如果次序不对就将其交换,从而最终使其达到一致的效果;
由于排序过程中大的数据下沉,小的数据上浮,所以称之为冒泡排序:
待排序序列 第一趟 第二趟 第三趟 第四趟 第五趟
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);