所谓冒泡自认为可以让大的沉下去或者小的漂上来,就是从大到小还是从小到大的实现。
PHP简单实现:
$arr = array(1,30,2,45,9,18,60);
$count = count($arr);
for($i=0;$i<$count;$i++){
for($j=0;$j<$count-$i-1;$j++){
if($arr[$j] > $arr[$j+1]){
$tmp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $tmp;
}
}
}
Array
(
[0] => 60
[1] => 45
[2] => 30
[3] => 18
[4] => 9
[5] => 2
[6] => 1
)
Python简单实现:
lista = [10,30,3,456,2,78,9]
lena = len(lista)
while lena > 0:
for i in range(lena -1):
if lista[i] > lista[i+1]:
tmp = lista[i]
lista[i] = lista[i+1]
lista[i+1] = tmp
lena -= 1
print lista
输出:
[2, 3, 9, 10, 30, 78, 456]
知道了原理,其它语言如c++,c,js等只是写法不同,原理都一样。