Heim >Java >javaLernprogramm >Detaillierte Erläuterung häufig verwendeter Sortieralgorithmen und Implementierungsmethoden in Java
Auswahlsortierung ist ein einfacher und intuitiver Sortieralgorithmus, unabhängig davon, welche Daten eingegeben werden, die Zeitkomplexität ist O(n²). Bei der Verwendung gilt also: Je kleiner die Datengröße, desto besser. Der einzige Vorteil besteht möglicherweise darin, dass kein zusätzlicher Speicherplatz belegt wird Startposition der sortierten Reihenfolge.
Suchen Sie dann weiterhin das kleinste (größte) Element aus den verbleibenden unsortierten Elementen und platzieren Sie es am Ende der sortierten Sequenz.
Wiederholen Sie den zweiten Schritt, bis alle Elemente sortiert sind.public static void selectSort(int[] arr) { //选择排序 if(arr == null || arr.length < 2) { return; } int n = arr.length; for (int i = 0; i < n; i++) { int minValueIndex = i; for (int j = i+1; j < n; j++) { minValueIndex = arr[j] < arr[minValueIndex] ? j : minValueIndex; } swap(arr,i,minValueIndex); } } public static void swap(int[] arr,int i,int j) { int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; } public static void printArray(int[] arr) { for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" "); } System.out.println(); } public static void main(String[] args) { int[] arr = {7,5,1,9,4,2,6}; printArray(arr); selectSort(arr); printArray(arr); }
2. Blasensortierung
**Das Prinzip des Blasensortierungsalgorithmus ist wie folgt: **#🎜🎜 # 1. Vergleichen Sie benachbarte Elemente. Wenn das erste größer als das zweite ist, tauschen Sie beide aus.
3. Wiederholen Sie die obigen Schritte für alle Elemente außer dem letzten.
4. Wiederholen Sie die obigen Schritte jedes Mal für immer weniger Elemente, bis keine Zahlenpaare mehr zum Vergleichen vorhanden sind.
public static void bubbleSort(int[] arr) { if(arr == null || arr.length < 2) { return; } int n = arr.length; for (int i = n-1; i >= 0; i--) { for (int j = 0; j < i; j++) { if(arr[j] > arr[j+1]) { swap(arr,j,j+1); } } } } public static void swap(int[] arr,int i,int j) { int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; } public static void main(String[] args) { int[] arr = {14,6,3,10,2}; printArray(arr); bubbleSort(arr); printArray(arr); }3. EinfügungssortierungEinfügungssortierung bedeutet, dass in den zu sortierenden Elementen, vorausgesetzt, dass die vorherigen n- 1 (Davon sind n>=2) Zahlen sind bereits in der richtigen Reihenfolge. Fügen Sie nun die n-te Zahl in die zuvor angeordnete Reihenfolge ein und finden Sie dann eine geeignete Position für sich selbst, sodass die Reihenfolge der n-ten Zahl vorliegt eingefügt ist auch sequentiell. Der Vorgang des Einfügens aller Elemente nach dieser Methode, bis die gesamte Sequenz in Ordnung ist, wird als Einfügesortierung bezeichnet.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung häufig verwendeter Sortieralgorithmen und Implementierungsmethoden in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!