原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换。
这样一趟过去后,最大或最小的数字被交换到了最后一位。
然后再从头开始进行两两比较交换,直到倒数第二位时结束。
PHP代码实现参考:
/**
* 冒泡排序
* 原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换。
* 这样一趟过去后,最大或最小的数字被交换到了最后一位。
* 然后再从头开始进行两两比较交换,直到倒数第二位时结束。
* @param unknown $arr
* @return unknown
*/
function bubble_sort($arr){
$count = count($arr);
for( $i=0;$i<$count-1;$i++){ // 外层控制循环趟数
for ($j=0;$j<$count-$i-1;$j++){ // 内层控制每趟对比的次数
if( $arr[$j]>$arr[$j+1] ){
$temp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $temp;
}
}
}
return $arr;
}
参考:
http://www.cnblogs.com/kkun/archive/2011/11/23/2260280.html