Blasenart
Bubble Sort, als ich diesen Algorithmus sah, erinnerte ich mich an das Sprichwort "Die Dezimalstellen schweben und die großen Zahlen sinken." Durch Schicht für Schichtvergleich schweben die Dezimalstellen zur Oberfläche und die großen Zahlen "sinken die Steine am Boden des Wassers". Dies erreicht den Effekt der Sortierung. Bubble -Sortierung ist ein einfacher Sortieralgorithmus. Es besucht wiederholt die zu sortierende Sequenz, vergleicht zwei Elemente gleichzeitig und tauscht sie aus, wenn sie falsch sind. Die Arbeit zum Besuch der Sequenz wird wiederholt, bis kein Austausch benötigt wird, dh die Sequenz wurde sortiert. Der Ursprung dieses Algorithmus liegt daran, dass je kleiner das Element über den Austausch langsam "schwimmt".
Der Betrieb des Blasensortieralgorithmus lautet wie folgt:
1. Vergleichen Sie benachbarte Elemente. Wenn der erste größer als der zweite ist, tauschen Sie sie gegen die beiden aus.
2. Führen Sie für jedes Paar benachbarte Elemente das gleiche Werk aus, beginnend vom ersten Paar bis zum letzten Paar am Ende. Zu diesem Zeitpunkt sollte das letzte Element die größte Zahl sein.
3. Wiederholen Sie die obigen Schritte für alle Elemente mit Ausnahme des letzten.
V.
Blasensortierungsprozessdiagramm:
Beispielcode
public class bubblesort {public static int [] bubblesort (int [] array) {für (int i = 0; i <array.length; i ++) {für (int j = 0; j <array.length-i-1; j ++) {if (Array [j]> Array [j+1]) {int temp = array [j]; Array [j] = Array [j+1]; Array [j+1] = temp; }} System.out.println ("th"+(i+1)+"sortieren"); für (int k = 0; k <array.length; k ++) {System.out.print (Array [k]+""); } System.out.println (); } return Array; } / ** * @param args * / public static void main (String [] args) {int [] array = {7,3,9,5,6,8,1}; Bubblesort (Array); }}Druckergebnis:
1. Ordnung 3 7 5 6 8 1 9Sortierende 2. Ordnung 3 5 6 7 1 8 9Sorting 3 5 6 1 7 8 9Sortierende 4. Ordnung 3 5 1 6 7 8 9 Sortieren 5. Ordnung 3 1 5 6 7 8 9Sortierende 6. Ordnung 1 3 5 6 7 8 9. Ordnung 7. Bestellung 1 5 6 7 8 9. Platz 7 8 7. 1 3 5 6 7 8 9Sorting 7th order 1 3 5 6 7 8 9Sorting 5th order 3 5 6 7 8 9Sorting 6th order 1 3 5 6 7 8 9Sorting 7th order 1 3 5 6 7 8 9Sorting 7th order 1 3 5 6 7 8 9Sorting 5th order 3 5 6 7 8 9Sorting 5th order 3 5 6 7 8 9Sorting 5th order 3 5 6 7 8 9Sorting 5th order 3 5 6 7 8 9Sorting 5th order 3 5 6 7 8 9Sorting 5th order 3 5 6 7 8 9Sorting 5th order 3 5 6 7 8 9Sorting 5th order 3 5 6 7 8 9Sorting 5th order 3 5 6 7 8 9Sorting 5th order 5th order 5th order 5th order 5th order 5th order 5th order 5th
Binäre Suche
Nachdem wir die Bestellung sortiert haben, müssen wir auch die gewünschten Daten finden. Dichotome Suche ist ein häufig verwendeter Abschnittszeit- und Grundalgorithmus. Die binäre Suche besteht darin, aus der mittleren Position der sortierten Daten zu suchen und zu vergleichen, ähnlich dem mittleren Paar des Holzstocks, so dass es auch als Falten und halbfindend bezeichnet wird. Es ist eine effizientere Suchmethode.
[Binäre Suchanforderungen]: 1. Die sequentielle Speicherstruktur muss übernommen werden. 2. Der Schlüssel muss ordentlich gemäß der Größe des Schlüsselworts angeordnet werden.
[Profis und Nachteile] Die Vorteile der halbfinischen Suchmethode sind, dass sie weniger Vergleichszeiten, schnelle Suchgeschwindigkeit und gute durchschnittliche Leistung aufweist. Sein Nachteil ist, dass der nachgeschautes Tisch eine geordnete Tabelle ist und es schwierig ist, einzulegen und zu löschen. Daher ist die halbfindende Methode für ordnungsgemäße Listen geeignet, die nicht häufig geändert und häufig gefunden werden.
[Algorithmus dachte] Vergleichen Sie zunächst die in der mittleren Position der Tabelle aufgezeichneten Schlüsselwörter mit den Suchschlüsselwörtern. Wenn die beiden gleich sind, ist die Suche erfolgreich; Andernfalls wird die Tabelle in zwei Untertabellen mit dem Zwischenpositionsdatensatz unterteilt. Wenn die in der mittleren Position aufgezeichneten Schlüsselwörter größer sind als das Suchschlüsselwort, suchen Sie weiter nach dem vorherigen Untertabellanschluss, ansonsten weitere Suche nach dem nächsten Untertisch.
Wiederholen Sie den obigen Vorgang, bis der Datensatz, der den Bedingungen erfüllt, so gefunden wird, dass die Suche erfolgreich ist oder bis die Kindertabelle nicht vorhanden ist, die Suche zu diesem Zeitpunkt erfolglos ist.
[Algorithmuskomplexität] unter der Annahme, dass die Arraylänge N ist, ist die Komplexität der Algorithmus o(log(n)), die Zeitkomplexität der schlimmsten Fall ist O(n)。
Beispielcode
Paket com.somnus.array;/** * Binär -Suchmethode * @Author Compaq * */public class Binarysearch {public static int binarysearch (int [] Array, int value) {int low = 0; int hoch = Array.Length-1; int Middle = 0; while (niedrig <= hoch) {Middle = (niedrig+hoch)/2; // 0 6 4 6 6 6 für (int i = 0; i <array.length; i ++) {System.out.print (Array [i]+""); if (i == Mitte) // 3 5 6 Drucken Sie den Trennzeichen unmittelbar nach dem Mittelpunkt {System.out.print ("##"); }} System.out.println (); if (Array [Middle] == Value) {return Middle; } if (Wert <Array [Mitte]) {High = Middle - 1; } if (value> Array [Mitte]) {Low = Middle + 1; }} return -1; } / ** * @param args * / public static void main (String [] args) {int [] array = {7,3,9,5,6,8,1}; int [] array1 = bubblesort.bubblesort (Array); int index = binarysearch (array1,1); System.out.println ("Lokal:"+Index); }}Druckergebnis:
1st order 3 7 5 6 8 1 9Sorting 2nd order 3 5 6 7 1 8 9Sorting 3 5 6 1 7 8 9Sorting 4th order 3 5 1 6 7 8 9Sorting 5th order 3 1 5 6 7 8 9Sorting 6th order 1 3 5 6 7 8 9Sorting 7th order 1 3 5 6 7 8 91 3 5 6 ## 7 8 91 3 ## 5 6 7 8 91 3 ## 5 6 7 8 9 Location:0
Analyse und Zusammenfassung
Bei Suchalgorithmen ist Dichotomie die schnellste, muss aber eine geordnete Sequenz sein. Dies sind die Grundlagen von Algorithmen, und wir müssen immer noch viel Anstrengungen in das Experimentieren, Zusammenfassen, Absorptieren und Festhalten an Algorithmuslernen unternehmen.