时间:2021-07-01 10:21:17 帮助过:14人阅读
遂自己也试着写了写……
php $array = array ( 10 , 5 , 36 , 86 , 2 , 56 , 9 , 15 , 8 , 4 , 3 , 41 ); $num = count ( $array ); for ( $i = 0 ; $i < $num - 1 ; $i ++ ){ for ( $j = $i + 1 ; $j < $num ; $j ++ ){ if ( $array [ $j ] > $array [ $i ]){//这里交换数组的值 $temp = $array [ $i ]; $array [ $i ] = $array [ $j ]; $array [ $j ] = $temp ; } } } print_r ( $array ); ?>
这是写的冒泡排序算法,结果还是可以的:
输出完成 (耗时 0 秒) - 正常终止---------- PHP Debug ---------- Array ( [ 0 ] => 86 [ 1 ] => 56 [ 2 ] => 41 [ 3 ] => 36 [ 4 ] => 15 [ 5 ] => 10 [ 6 ] => 9 [ 7 ] => 8 [ 8 ] => 5 [ 9 ] => 4 [ 10 ] => 3 [ 11 ] => 2 )
看着有了成功的小喜悦,就又写了一个,于是问题就出来了??
php $array = array ( 10 , 5 , 36 , 86 , 2 , 56 , 9 , 15 , 8 , 4 , 3 , 41 ); $num = count ( $array ); for ( $i = 0 ; $i < $num - 1 ; $i ++ ){ for ( $j = $i + 1 ; $j < $num ; $j ++ ){ if ( $array [ $j ] > $array [ $i ]){//这里是交换键值 $temp = $i ; $i = $j ; $j = $temp ; } } } print_r ( $array ); ?>
结果惨不忍睹啊……
输出完成 (耗时 0 秒) - 正常终止---------- PHP Debug ---------- Array ( [ 0 ] => 10 [ 1 ] => 5 [ 2 ] => 36 [ 3 ] => 86 [ 4 ] => 2 [ 5 ] => 56 [ 6 ] => 9 [ 7 ] => 15 [ 8 ] => 8 [ 9 ] => 4 [ 10 ] => 3 [ 11 ] => 41 )
一个也没换过来,Why??Why???
路过个别忘提个意见啊……