/** |
* 冒泡排序 (一维数组) |
* 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止 |
* 设想被排序的数组R[1..N] 垂直竖立,将每个数据元素看作有重量的气泡,从下往上扫描数组,凡扫描违反原则的轻气泡,就使其向上"漂浮".如此反复进行. |
* 直到最后任何两个气都是轻者在上,重者在下为止. |
*/ |
function bubble_sort( $arr ) { |
$count = count ( $arr ); |
if ( $count = 0 || is_array ( $arr )) { |
echo 'NOT NULL ARRAY' ; |
return false; |
} |
for ( $i = 0; $i < $count ; $i ++) { |
$flag = 1; |
for ( $j = $count - 1; $j > $i ; $j --) { |
if ( $arr [ $j ] < $arr [ $j - 1]) { |
$tmp = $arr [ $j ]; //将数组的元素调换 |
$arr [ $j ] = $array [ $j - 1]; |
$arr [ $j - 1] = $tmp ; |
$flag = 0; |
} |
if (1 == $flag ) |
{ |
echo $i , '完成排序' ; |
break ; |
} |
} |
} |
return $arr ; |
} |