Heim  >  Artikel  >  Backend-Entwicklung  >  Erläuterung der Implementierung des Bucket-Sortieralgorithmus in PHP

Erläuterung der Implementierung des Bucket-Sortieralgorithmus in PHP

jacklove
jackloveOriginal
2018-07-03 17:51:091356Durchsuche

In diesem Artikel wird hauptsächlich der in PHP implementierte Bucket-Sortieralgorithmus im Detail vorgestellt, der einen gewissen Referenzwert hat. Interessierte Freunde können sich auf

Bucket-Sortierung im einfachen Sinne beziehen:

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 wird das Array von $arr[2]=1 durchlaufen, die Schleife gibt Element 2 einmal aus, dann führt die Schleife die Ausgabe 5 zweimal durch >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.

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe es wird für das Lernen aller hilfreich sein und ich hoffe, dass jeder die chinesische PHP-Website unterstützt.

Artikel, die Sie interessieren könnten:

Detaillierte Erläuterung der Probleme, die beim Einrichten von Lazy Loading während der Laravel Service Provider-Entwicklung auftreten

PHP implementiert den Sortierheap-Sortieralgorithmus

PHP einfaches Lernen des Auswahlsortieralgorithmus

Das obige ist der detaillierte Inhalt vonErläuterung der Implementierung des Bucket-Sortieralgorithmus in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn