Heim Backend-Entwicklung PHP-Tutorial PHP-Bubble-Sortierung, schnelle Sortierung

PHP-Bubble-Sortierung, schnelle Sortierung

Jul 29, 2016 am 09:10 AM
arr array print right

/******
1) Blasensortierung: Werte paarweise austauschen, wobei der kleinste Wert links steht, genau wie die hellste Blase oben.
2) Tauschen Sie die gesamte Zahlenspalte einmal aus, wobei die kleinste Zahl ganz links steht. Jedes Mal können Sie die kleinste Zahl unter den verbleibenden Zahlen erhalten. Die „geplatzten“ Zahlen bilden ein geordnetes Intervall, und die verbleibenden Zahlen sind Die folgenden Werte bilden ein ungeordnetes Intervall, und der Wert jedes Elements im geordneten Intervall ist kleiner als der Wert des ungeordneten Intervalls.
3) Schnelle Sortierung: Basisnummer, linke und rechte Arrays, rekursiver Aufruf, Zusammenführen.
4)Einfügungssortierung: Das Sortierintervall ist in zwei Teile unterteilt, die linke Seite ist geordnet und die rechte Seite ist ungeordnet. Nehmen Sie das erste Element aus dem rechten Intervall und fügen Sie es in das linke Intervall ein . Wenn dieses Element kleiner als das Element ganz rechts im linken Intervall ist, wird es an der ursprünglichen Position des Elements ganz rechts eingefügt um eine Position nach rechts verschoben wird, wird der Rechner um eins verkleinert und erneut mit dem vorherigen Element verglichen. Wiederholen Sie die obigen Schritte, bis das vorherige Element kleiner als das einzufügende Element ist.
6) Achten Sie auf die Verarbeitung von Intervallendpunktwerten und der Index des ersten Elements des Arrays ist 0.
***/

<span><br>$a</span>=<span>array</span>('3','8','1','4','11','7'<span>);
</span><span>print_r</span>(<span>$a</span><span>);
</span><span>$len</span> = <span>count</span>(<span>$a</span><span>);
</span><span>//</span><span>从小到大</span><span>for</span>(<span>$i</span>=1;<span>$i</span><<span>$len</span>;<span>$i</span>++<span>)
{
</span><span>for</span>(<span>$j</span>=<span>$len</span>-1;<span>$j</span>>=<span>$i</span>;<span>$j</span>--<span>)
</span><span>if</span>(<span>$a</span>[<span>$j</span>]<<span>$a</span>[<span>$j</span>-1<span>])
{</span><span>//</span><span>如果是从大到小的话,只要在这里的判断改成if($b[$j]>$b[$j-1])就可以了<span>$x</span>=<span>$a</span>[<span>$j</span><span>];
 </span><span>$a</span>[<span>$j</span>]=<span>$a</span>[<span>$j</span>-1<span>];
 </span><span>$a</span>[<span>$j</span>-1]=<span>$x</span><span>;
}
}
</span><span>print_r</span>(<span>$a</span><span>);
</span><span>//</span><span>另一种方法 从小到大</span><span>$b</span>=<span>array</span>('4','3','8','9','2','1'<span>);
</span><span>$len</span>=<span>count</span>(<span>$b</span><span>);
</span><span>for</span>(<span>$k</span>=1;<span>$k</span><<span>$len</span>;<span>$k</span>++<span>)
{
</span><span>for</span>(<span>$j</span>=<span>$len</span>-1,<span>$i</span>=0;<span>$i</span><<span>$len</span>-<span>$k</span>;<span>$i</span>++,<span>$j</span>--<span>)
</span><span>if</span>(<span>$b</span>[<span>$j</span>]<<span>$b</span>[<span>$j</span>-1<span>]){
</span><span>//</span><span>如果是从大到小的话,只要在这里的判断改成if($b[$j]>$b[$j-1])就可以了<span>$tmp</span>=<span>$b</span>[<span>$j</span><span>];
 </span><span>$b</span>[<span>$j</span>]=<span>$b</span>[<span>$j</span>-1<span>];
 </span><span>$b</span>[<span>$j</span>-1]=<span>$tmp</span><span>;
}
</span><span>print_r</span>(<span>$b</span><span>);
</span><span>echo</span> "
"<span>;
}
</span><span>//</span><span>下面的这个执行效率更高</span><span>function</span> maopao(<span>$arr</span><span>)
{
 </span><span>$len</span> = <span>count</span>(<span>$arr</span><span>);
 </span><span>for</span>(<span>$i</span>=1; <span>$i</span><<span>$len</span>; <span>$i</span>++)<span>//</span><span>最多做n-1趟排序</span><span> {
  </span><span>$flag</span> = <span>false</span>;    <span>//</span><span>本趟排序开始前,交换标志应为假</span><span>for</span>(<span>$j</span>=<span>$len</span>-1;<span>$j</span>>=<span>$i</span>;<span>$j</span>--<span>)
  {
   </span><span>if</span>(<span>$arr</span>[<span>$j</span>]<<span>$arr</span>[<span>$j</span>-1])<span>//</span><span>交换记录</span>   {<span>//</span><span>如果是从大到小的话,只要在这里的判断改成if($arr[$j]>$arr[$j-1])就可以了<span>$x</span>=<span>$arr</span>[<span>$j</span><span>];
     </span><span>$arr</span>[<span>$j</span>]=<span>$arr</span>[<span>$j</span>-1<span>];
     </span><span>$arr</span>[<span>$j</span>-1]=<span>$x</span><span>;
     </span><span>$flag</span> = <span>true</span>;<span>//</span><span>发生了交换,故将交换标志置为真</span><span>   }
  }
  </span><span>if</span>(! <span>$flag</span>)<span>//</span><span>本趟排序未发生交换,提前终止算法</span><span>return</span><span>$arr</span><span>;   
 }
}
</span><span>$shuz</span> = <span>array</span>('2','4','1','8','5'<span>);
</span><span>$bb</span> = maopao(<span>$shuz</span><span>);
</span><span>print_r</span>(<span>$bb</span><span>);
</span><span>//</span><span> 快速排序</span><span>function</span> kuaisu(<span>$arr</span><span>){
    </span><span>$len</span> = <span>count</span>(<span>$arr</span><span>);
    </span><span>if</span>(<span>$len</span> <= 1<span>){
        </span><span>return</span><span>$arr</span><span>;
    }
    </span><span>$key</span> = <span>$arr</span>[0<span>];
    </span><span>$left_arr</span> = <span>array</span><span>();
    </span><span>$right_arr</span> = <span>array</span><span>();
    </span><span>for</span>(<span>$i</span>=1; <span>$i</span><<span>$len</span>;<span>$i</span>++<span>){
        </span><span>if</span>(<span>$arr</span>[<span>$i</span>] <= <span>$key</span><span>){
            </span><span>$left_arr</span>[] = <span>$arr</span>[<span>$i</span><span>];
        }</span><span>else</span><span>{
            </span><span>$right_arr</span>[] = <span>$arr</span>[<span>$i</span><span>];
        }
    }
    </span><span>$left_arr</span> = kuaisu(<span>$left_arr</span><span>);
    </span><span>$right_arr</span> = kuaisu(<span>$right_arr</span><span>);
    </span><span>return</span><span>array_merge</span>(<span>$left_arr</span>, <span>array</span>(<span>$key</span>), <span>$right_arr</span><span>);
}
</span><span>$arr</span> = <span>array</span>(23,98,54,2,9,62,34<span>);
</span><span>print_r</span>(kuaisu(<span>$arr</span>));
Nach dem Login kopieren

Das Obige stellt die PHP-Blasensortierung und die Schnellsortierung vor, einschließlich der Einfügungssortierung. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Array mit der Array.Sort-Funktion in C# sortieren Array mit der Array.Sort-Funktion in C# sortieren Nov 18, 2023 am 10:37 AM

Titel: Beispiel für die Verwendung der Array.Sort-Funktion zum Sortieren eines Arrays in C#. Text: In C# ist Array eine häufig verwendete Datenstruktur, und häufig sind Array-Sortiervorgänge erforderlich. C# stellt die Array-Klasse bereit, die über die Sort-Methode verfügt, um Arrays bequem zu sortieren. In diesem Artikel wird gezeigt, wie Sie ein Array mithilfe der Array.Sort-Funktion in C# sortieren, und es werden spezifische Codebeispiele bereitgestellt. Zunächst müssen wir die grundlegende Verwendung der Array.Sort-Funktion verstehen. Array.So

Einfache und klare Methode zur Verwendung der PHP-Funktion array_merge_recursive() Einfache und klare Methode zur Verwendung der PHP-Funktion array_merge_recursive() Jun 27, 2023 pm 01:48 PM

Beim Programmieren in PHP müssen wir häufig Arrays zusammenführen. PHP stellt die Funktion array_merge() bereit, um die Array-Zusammenführung abzuschließen. Wenn jedoch derselbe Schlüssel im Array vorhanden ist, überschreibt diese Funktion den ursprünglichen Wert. Um dieses Problem zu lösen, stellt PHP in der Sprache auch eine Funktion array_merge_recursive() bereit, die Arrays zusammenführen und die Werte derselben Schlüssel beibehalten kann, wodurch das Programmdesign flexibler wird. array_merge

So verwenden Sie die Funktion array_combine in PHP, um zwei Arrays zu einem assoziativen Array zu kombinieren So verwenden Sie die Funktion array_combine in PHP, um zwei Arrays zu einem assoziativen Array zu kombinieren Jun 26, 2023 pm 01:41 PM

In PHP gibt es viele leistungsstarke Array-Funktionen, die Array-Operationen komfortabler und schneller machen können. Wenn wir zwei Arrays zu einem assoziativen Array kombinieren müssen, können wir diese Operation mit der Funktion array_combine von PHP ausführen. Diese Funktion wird tatsächlich verwendet, um die Schlüssel eines Arrays als Werte eines anderen Arrays zu einem neuen assoziativen Array zu kombinieren. Als nächstes erklären wir, wie man die Funktion array_combine in PHP verwendet, um zwei Arrays zu einem assoziativen Array zu kombinieren. Erfahren Sie mehr über array_comb

Detaillierte Erläuterung der Verwendung der PHP-Funktion array_fill() Detaillierte Erläuterung der Verwendung der PHP-Funktion array_fill() Jun 27, 2023 am 08:42 AM

In der PHP-Programmierung ist Array eine sehr wichtige Datenstruktur, die große Datenmengen problemlos verarbeiten kann. PHP bietet viele Array-bezogene Funktionen, array_fill() ist eine davon. In diesem Artikel wird die Verwendung der Funktion array_fill() ausführlich vorgestellt und einige Tipps für praktische Anwendungen gegeben. 1. Übersicht über die Funktion array_fill() Die Funktion der Funktion array_fill() besteht darin, ein Array mit demselben Wert und einer angegebenen Länge zu erstellen. Konkret lautet die Syntax dieser Funktion

Interpretation der CSS-Positionierungseigenschaften: Position und oben/links/rechts/unten Interpretation der CSS-Positionierungseigenschaften: Position und oben/links/rechts/unten Oct 21, 2023 am 09:58 AM

Interpretation der CSS-Positionierungseigenschaften: Position und oben/links/rechts/unten In der Frontend-Entwicklung sind CSS-Positionierungseigenschaften sehr wichtig. Mit dem Positionierungsattribut können wir die Position des Elements auf der Seite steuern. Das am häufigsten verwendete Positionierungsattribut ist die Position, deren Werte statisch, relativ, absolut und fest sein können. Zusätzlich zu diesen grundlegenden Positionierungsattributen können wir auch oben, links und r verwenden

So verwenden Sie das Array-Modul in Python So verwenden Sie das Array-Modul in Python May 01, 2023 am 09:13 AM

Das Array-Modul in Python ist ein vordefiniertes Array, sodass es viel weniger Speicherplatz beansprucht als eine Standardliste und auch schnelle Vorgänge auf Elementebene wie Hinzufügen, Löschen, Indizieren und Schneiden ausführen kann. Darüber hinaus sind alle Elemente im Array vom gleichen Typ, sodass Sie die vom Array bereitgestellten effizienten numerischen Operationsfunktionen verwenden können, z. B. die Berechnung der Durchschnitts-, Maximal- und Minimalwerte. Darüber hinaus unterstützt das Array-Modul auch das direkte Schreiben und Lesen von Array-Objekten in Binärdateien, was die Verarbeitung großer Mengen numerischer Daten effizienter macht. Wenn Sie daher eine große Menge homogener Daten verarbeiten müssen, können Sie die Verwendung des Array-Moduls von Python in Betracht ziehen, um die Ausführungseffizienz Ihres Codes zu optimieren. Um das Array-Modul verwenden zu können, müssen Sie zunächst Folgendes tun

Was sind die häufigsten Ursachen für ArrayStoreException in Java? Was sind die häufigsten Ursachen für ArrayStoreException in Java? Jun 25, 2023 am 09:48 AM

In der Java-Programmierung ist Array eine wichtige Datenstruktur. Arrays können mehrere Werte in einer einzigen Variablen speichern, und was noch wichtiger ist, auf jeden Wert kann über einen Index zugegriffen werden. Bei der Arbeit mit Arrays können jedoch einige Ausnahmen auftreten, eine davon ist ArrayStoreException. In diesem Artikel werden häufige Ursachen für ArrayStoreException-Ausnahmen erläutert. 1. Typkonflikt Der Elementtyp muss beim Erstellen des Arrays angegeben werden. Wenn wir versuchen, inkompatible Datentypen in einem Array zu speichern, wird ein Fehler ausgelöst

Einführung in die Verwendung der PHP-Funktion array_change_key_case() Einführung in die Verwendung der PHP-Funktion array_change_key_case() Jun 27, 2023 am 10:43 AM

In der PHP-Programmierung ist Array ein häufig verwendeter Datentyp. Es gibt auch eine ganze Reihe von Array-Operationsfunktionen, einschließlich der Funktion array_change_key_case(). Diese Funktion kann die Groß-/Kleinschreibung von Schlüsselnamen im Array umwandeln, um unsere Datenverarbeitung zu erleichtern. In diesem Artikel wird die Verwendung der Funktion array_change_key_case() in PHP vorgestellt. 1. Funktionssyntax und Parameter array_change_ke

See all articles