function insertSort($arr) {
$count = count($arr);
for( $i=1; $i<$count; $i++ ) {
$temp = $arr[$i];//值调换用
$j = $i-1;
while ( $arr[$j] > $arr[$i] ) {
//对换值
$arr[$i] = $arr[$j];
$arr[$j] = $temp;
$j--;
if($j<0){ break; }
}
}
return $arr;
}
例如这里有个数组是,
arr=array(‘3′,′12′,′42′,′1′,′24′,′5′,′346′,′7′);这个算法进行到
i=3的时候进入了while循环中,在将42和1的位置对调后,
j–,接着while循环,直到
j--小于0时,跳出了while,$i++,进入下一个for循环,这里在跳出while之前将数组前4个元素进行了排序:
第一次:3,12,1,42
第二次:3,1,12,42
第三次:1,3,12,42
直到排好后才跳出了while。
没有想明白为什么叫插入排序法。