原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换。
这样一趟过去后,最大或最小的数字被交换到了最后一位。
然后再从头开始进行两两比较交换,直到倒数第二位时结束。
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