Heim > Artikel > Backend-Entwicklung > Beispiel für die gemeinsame Nutzung eines in PHP implementierten Bucket-Sortieralgorithmus
Dieser Artikel stellt hauptsächlich den in PHP implementierten Bucket-Sortieralgorithmus vor. Er hat einen gewissen Referenzwert. Ich hoffe, er kann jedem helfen.
Bucket-Sortierung im einfachen Sinne:
Das Prinzip der Bucket-Sortierung besteht darin, zunächst N+1 Buckets als Container anzuordnen, wenn der Datenbereich N ist.
Schleifen Sie dann die Testdaten (zu sortierende Daten) in eine Schleife und legen Sie sie in den entsprechenden Bucket. Die Daten müssen im Bereich N liegen.
Schließlich schleifen Sie die Elemente im Bucket und geben sie aus, indem Sie sie von groß nach klein oder von klein nach groß sortieren.
Zum Beispiel:
Unser Wertebereich ist 10, dann müssen wir ein Array $arr mit einer Länge von 11 definieren. Und lassen Sie alle Elementwerte be ist 0
Durchlaufen Sie dann das Array, das sortiert werden muss, z. B. 5, 3, 5, 2, 8. (Der Wertebereich beträgt hier tatsächlich nur 8)
Entspricht den Daten in Das $arr-Bucket-Array wiederum, das heißt, wenn es 5 ist, mache $arr[5]++.
Zu diesem Zeitpunkt $arr[2]=1 $arr[3]=1 $arr[5]= 2 $arr[8]=1
Dann Schleife das Array von $arr. Wenn $arr[2]=1, gibt die Schleife einmal Element 2 aus. Wenn $arr[5]=2, gibt die Schleife zweimal 5 aus.
Die resultierende Ausgabe ist 2 3 5 5 8
Wenn der Schleifenwert von groß nach klein ist, wird er von groß nach klein sortiert
<?php //设置默认数组,默认值为0; $arr = array(); for ($i = 0; $i <= 10; $i++) { $arr[$i] = 0; } //设置测试的五个数据 $arr1 = array(5, 3, 5, 2, 8); //根据数据 对默认数组的对应元素进行+1; J的取值范围不能等于$arr1数组长度 for ($j = 0; $j < count($arr1); $j++) { //这边给相应的数组值+1 $arr[$arr1[$j]]++; } //开始循环输出 默认数组 $arr 里面相应的值 for ($k = 0; $k <= 10; $k++) { for ($l=1; $l <=$arr[$k]; $l++) { echo "$k </n>"; } } ?>
Nachteile:
Platzverschwendung.
Gleitkommadaten können nicht sortiert werden.
Verwandte Empfehlungen:
Detaillierte Erläuterung der Bucket-Sortierung des PHP-Sortieralgorithmus series_php skills
Python-Algorithmus-Lernalgorithmus für Bucket-Sortierung (Blocksortierung)
Das obige ist der detaillierte Inhalt vonBeispiel für die gemeinsame Nutzung eines in PHP implementierten Bucket-Sortieralgorithmus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!