$arr=[8,7,6,512,1,3,43,145,76,32,14,2,56,78,12,22,33,11];
//插入排序循環式
//要點1:假設'前面'都是排好序的,要拿後面的依次和前面比
//要點2:兩個循環中誰是待比較的,誰是已排好的
function csort($arr){
for($i=1;$i<count($arr);$i++){
$tem=$arr[$i];
for($j=$i-1;$j>=0;$j--){
if($tem<$arr[$j]){//這步搞清誰是待比較的,比較後如何移動位置
$arr[$j+1]=$arr[$j];
$arr[$j]=$tem;
}
}
}
return $arr;
}
//遞歸法
//雙層循環的外層被遞歸取代
function isort($brr,$len){
if($len>=count($brr)){
return $brr;
}
$tem=$brr[$len];
for($i=$len-1;$i>=0;$i--){
if($tem<$brr[$i]){
$brr[$i+1]=$brr[$i];
$brr[$i]=$tem;
}
}
return isort($brr,$len+1);
}
print_r(isort($arr,1));