十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
$arr[$j]){ //從小到大排列 $min=$j; } } if($min != $i){ $temp=$arr[$min]; $arr[$min]=$arr[$i]; $arr[$i]=$temp; } } } /** * 直接插入排序:就是在一個(gè)有序的數(shù)據(jù)集合中,通過(guò)與集合中的元素進(jìn)行比較,然后插入數(shù)據(jù)。 * @param $arr */ public static function InsertSort($arr){ for($i=1;$i=0 && $inserted < $arr[$j]:將當(dāng)前要插入的元素依次與其前面的元素進(jìn)行比較,若要插入的元素比其前面的元素小,那么其前面的元素就要往后移動(dòng)一位,以為要插入的元素騰出位置 for($j=$i-1;$j>=0 && $inserted<$arr[$j];$j--){ $arr[$j+1]=$arr[$j]; } $arr[$j+1]=$inserted; //表示要插入元素的位置下標(biāo)為$j+1,因?yàn)閒or循環(huán)最后又執(zhí)行了一次$j--,所以要把減去的 1 加上 } return $arr; } /** * 希爾排序:將一個(gè)待排序的數(shù)組,分成若干子序列,然后分別對(duì)其進(jìn)行排序,使其先部分有序,如此循環(huán),最后得到有序數(shù)組。 * 它是對(duì)直接插入排序的一種改進(jìn)。 * @param $arr * @return mixed */ public static function ShellSort($arr){ $count=count($arr); for($inc=floor($count/3);$inc>0;$inc=floor($inc/3)){ for($i=$inc;$i<$count;$i++){ $instered=$arr[$i]; for($j=$i-$inc;$j>=0 && $instered<$arr[$j];$j-=$inc){ $arr[$j+$inc]=$arr[$j]; } $arr[$j+$inc]=$instered; } } return $arr; } }