冒泡排序Bubble Sort的PHP实现。代码中函数说明:
- out_arr,用于将数组输出成一个字符串,以便查看
- bubblesort,第一种实现方案,从后往前依次选出需要的值,这里是较大的
- bubblesort2,第二种方案,从前往后一次选中需要的值,这里是最小的
- range,产生一个1到20的数组
- shuffle,打乱数组
01
function out_arr($arr) {
02
return implode(', ', $arr).'
03
';
04
}
05
06
function bubblesort($arr) {
07
for ($i = 0; $i < count($arr) - 1; $i++ ) {
08
for($j = 0; $j < count($arr) - $i - 1; $j++ ) {
09
if( $arr[$j] > $arr[$j+1] ) {
10
$tmp = $arr[$j];
11
$arr[$j] = $arr[$j + 1];
12
$arr[$j + 1] = $tmp;
13
}
14
}
15
echo sprintf('%3d', $i).' : '.out_arr($arr);
16
}
17
}
18
19
20
function bubblesort2($array) {
21
$count = count($array);
22
for($i=0; $i<$count; $i++) {
23
for($j=$count-1; $j>$i; $j--) {
24
if ($array[$j] < $array[$j-1]) {
25
$tmp = $array[$j];
26
$array[$j] = $array[$j-1];
27
$array[$j-1] = $tmp;
28
}
29
}
30
echo sprintf('%3d', $i).' : '.out_arr($array);
31
}
32
return $array;
33
}
34
echo '<pre>';
35
$arr = range(1, 20);
36
shuffle($arr);
37
echo 'ORG : '.out_arr($arr);
38
bubblesort2($arr);
39
echo '</pre>';
冒泡排序Bubble Sort的PHP实现。代码中函数说明:
- out_arr,用于将数组输出成一个字符串,以便查看
- bubblesort,第一种实现方案,从后往前依次选出需要的值,这里是较大的
- bubblesort2,第二种方案,从前往后一次选中需要的值,这里是最小的
- range,产生一个1到20的数组
- shuffle,打乱数组
01 |
function out_arr( $arr ) { |
02 |
return implode( ', ' , $arr ).' |
06 |
function bubblesort( $arr ) { |
07 |
for ( $i = 0; $i < count ( $arr ) - 1; $i ++ ) { |
08 |
for ( $j = 0; $j < count ( $arr ) - $i - 1; $j ++ ) { |
09 |
if ( $arr [ $j ] > $arr [ $j +1] ) { |
11 |
$arr [ $j ] = $arr [ $j + 1]; |
15 |
echo sprintf( '%3d' , $i ). ' : ' .out_arr( $arr ); |
20 |
function bubblesort2( $array ) { |
21 |
$count = count ( $array ); |
22 |
for ( $i =0; $i < $count ; $i ++) { |
23 |
for ( $j = $count -1; $j > $i ; $j --) { |
24 |
if ( $array [ $j ] < $array [ $j -1]) { |
26 |
$array [ $j ] = $array [ $j -1]; |
30 |
echo sprintf( '%3d' , $i ). ' : ' .out_arr( $array ); |
37 |
echo 'ORG : ' .out_arr( $arr ); |