Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiel für die gemeinsame Nutzung eines in PHP implementierten Bucket-Sortieralgorithmus

Beispiel für die gemeinsame Nutzung eines in PHP implementierten Bucket-Sortieralgorithmus

小云云
小云云Original
2018-01-08 10:12:481628Durchsuche

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)

Python-Datenstruktur und Beispiel für eine Algorithmus-Allokationssortiermethode [Bucket-Sortierung und Radix-Sortierung]_python

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!

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