Heim >Backend-Entwicklung >PHP-Tutorial >Ausführliche Erklärung der vier grundlegenden Sortieralgorithmen in PHP
z. B.:Blasensortierung-Methode, Schnellsortiermethode, Auswahlsortierung-Methode, Einfügungssortiermethode
Ideenanalyse: In einer zu sortierenden Zahlengruppe die beiden benachbarten Zahlen von vorne nach hinten für die noch nicht sortierte Reihenfolge vergleichen und anpassen, sodass die größere Zahl nach unten sinkt, die kleineren steigen nach oben. Das heißt, immer wenn zwei benachbarte Zahlen verglichen werden und sich herausstellt, dass ihre Reihenfolge den Reihenfolgeanforderungen widerspricht, werden sie vertauscht.
Code-Implementierung:
$arr=array(1,43,54,62,21,66,32,78,36,76,39); function bubbleSort($arr) { $len=count($arr); //该层循环控制 需要冒泡的轮数 for($i=1;$i<$len;$i++) { //该层循环用来控制每轮 冒出一个数 需要比较的次数 for($k=0;$k<$len-$i;$k++) { if($arr[$k]>$arr[$k+1]) { $tmp=$arr[$k+1]; $arr[$k+1]=$arr[$k]; $arr[$k]=$tmp; } } } return $arr; }
Ideenanalyse: In einer Reihe von Zahlen sortiert Wählen Sie unter ihnen die kleinste Zahl aus und tauschen Sie sie mit der Zahl an der ersten Position aus. Suchen Sie dann die kleinste der verbleibenden Zahlen und tauschen Sie sie mit der Zahl an der zweiten Stelle aus. Dieser Zyklus wird fortgesetzt, bis die vorletzte Zahl mit der letzten Zahl verglichen wird.
Code-Implementierung:
function selectSort($arr) { //双重循环完成,外层控制轮数,内层控制比较次数 $len=count($arr); for($i=0; $i<$len-1; $i++) { //先假设最小的值的位置 $p = $i; for($j=$i+1; $j<$len; $j++) { //$arr[$p] 是当前已知的最小值 if($arr[$p] > $arr[$j]) { //比较,发现更小的,记录下最小值的位置;并且在下次比较时采用已知的最小值进行比较。 $p = $j; } } //已经确定了当前的最小值的位置,保存到$p中。如果发现最小值的位置与当前假设的位置$i不同,则位置互换即可。 if($p != $i) { $tmp = $arr[$p]; $arr[$p] = $arr[$i]; $arr[$i] = $tmp; } } //返回最终结果 return $arr; }
Code-Implementierung:
4. Schnelle Sortierung
function insertSort($arr) { $len=count($arr); for($i=1, $i<$len; $i++) { $tmp = $arr[$i]; //内层循环控制,比较并插入 for($j=$i-1;$j>=0;$j--) { if($tmp < $arr[$j]) { //发现插入的元素要小,交换位置,将后边的元素与前面的元素互换 $arr[$j+1] = $arr[$j]; $arr[$j] = $tmp; } else { //如果碰到不需要移动的元素,由于是已经排序好是数组,则前面的就不需要再次比较了。 break; } } } return $arr; }
Code-Implementierung:
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung der vier grundlegenden Sortieralgorithmen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!