1. Blasensortierung
Algorithmus -Idee: Überqueren Sie das zu sortierende Array und vergleichen Sie jedes Mal zwei benachbarte Elemente. Wenn ihre Anordnung falsch ist, tauschen Sie ihre Positionen aus. Nach einer Reise zur Sortierung schwebt das größte Element bis zum Ende des Arrays. Wiederholen Sie, bis die Sortierung abgeschlossen ist.
Probendemonstration:
Algorithmus -Implementierung:
für (int i = 0; i <array.length-1; i ++) {// sortieren N-1-Zeiten höchstens für (int j = 0; j <array.length-i-1; j ++) {// Die Anzahl der Male, die ausgetauscht werden müssen, if (Array [j]> array [j+1]) {int temp = array [j]; Array [j] = Array [j+1]; Array [j+1] = temp; }}}Algorithmus-Zeitkomplexität: O (N2) Die äußere Schleife muss mit dem N-1-Mal verglichen werden, und die innere Schleife muss n-mal verglichen werden.
2. Wählen Sie Sortieren
Algorithmus Idee: Wählen Sie das kleinste Element im zu sortierenden Array erneut aus und tauschen Sie es mit dem Element an der ersten Position des Arrays aus. Wählen Sie dann ein kleinstes Element aus den verbleibenden Elementen aus und tauschen Sie es mit dem Element in der zweiten Position aus. Wenn das kleinste Element das Element in dieser Position ist, tauschen Sie es mit sich selbst aus und so weiter, bis die Sortierung abgeschlossen ist.
Probendemonstration:
Algorithmus -Implementierung:
für (int i = 0; i <array.length; i ++) {int min = i; für (int j = i+1; j <array.length; j ++) {if (Array [j] <Array [min]) {min = j; }} int temp = array [min]; Array [min] = Array [i]; Array [i] = temp; } Zeitkomplexität: O (N2) erfordert N2/2 -Vergleiche und N -Börsen
3. Sortieren einfügen
Algorithmusidee: Starten Sie das zweite Element des Arrays, vergleichen Sie das Element mit dem vorherigen Element. Wenn das Element kleiner als das vorherige Element ist, das Element in eine temporäre Variable speichern, das vorherige Element nacheinander nach hinten bewegen und dann das Element in eine geeignete Position einfügen. Nach Abschluss jeder Sortierung müssen die Elemente auf der linken Seite des Index bestellt werden, können aber weiterhin bewegt werden. Für Arrays mit weniger Inversionen ist der Algorithmus umso effizienter.
Hinweis: Invertiert: 5 3 6 2 Der invertierte Term beträgt 5-3 5-2 3-2 6-2
Probendemonstration:
Algorithmus -Implementierung:
für (int i = 1; i <array.length; i ++) {für (int j = i; j> 0 && array [j] <array [j-1]; j-) {int temp = array [j]; Array [j] = Array [j-1]; Array [j-1] = temp; }}Zeitkomplexität: O (N2) Schlimmster Fall N2/2 Vergleich, N2/2 Austausch Bester Fall N-1 Vergleich, 0 Börsen
Die obigen drei einfachen Sortieralgorithmen (mit Java implementiert) sind alle Inhalte, die ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.