1、插入排序
$num1 = array(5,2,4,6,1,3); $num2 = array(); //排序后的数组 $num2[0] = $num1[0]; $max = $num1[0]; $min = $num1[0]; $min = $num1[0]; $index = 0; //插入排序 for($i=1,$length1=count($num1);$i<$length1;$i++){ $length2=count($num2); if($length2>1){ if($num1[$i]>=$max){ $max = $num1[$i]; $num2[$i] = $num1[$i]; }else if($num1[$i]<=$min){ $min = $num1[$i]; for($j=$i;$j>-1;$j--){ $num2[$j] = $j ? $num2[$j-1] : $num1[$i]; } }else{ for($j=0;$j<$i;$j++){ if($num1[$i]>$num2[$j] && $num1[$i]<$num2[$j+1]){ for($x=$i;$x>$j;$x--){ $num2[$x] = $x>$j && $x<=$j+1 ? $num1[$i] : $num2[$x-1]; } break; } } } }else{ if($num1[1] > $num2[0]){ $num2[1] = $num1[1]; }else{ $tmp = $num2[0]; $num2[0] = $num1[1]; $num2[1] = $tmp; } $min = $num2[0]; $max = $num2[1]; } } var_dump($num2);