Heim >Java >javaLernprogramm >Eine ausführliche Analyse der prägnantesten Implementierung der Blasensortierung in Java
Detaillierte Erklärung der einfachsten Art, Java Bubble Sort zu schreiben
Bubble Sort ist ein grundlegender Sortieralgorithmus. Er implementiert die Sortierung durch Vergleichen und Austauschen benachbarter Elemente, sobald sie nach oben (oder unten) verschoben werden ) an die richtige Position. In diesem Artikel wird die einfachste Möglichkeit zum Schreiben einer Blasensortierung in Java ausführlich erläutert und spezifische Codebeispiele bereitgestellt.
Die Grundidee der Blasensortierung besteht darin, benachbarte Elemente von links nach rechts zu vergleichen und ihre Positionen zu tauschen, wenn das vorherige Element größer (oder kleiner) als das letztere ist. Nach einer solchen Vergleichs- und Austauschrunde „blubbert“ das größte (oder kleinste) Element ganz rechts (oder ganz links). Führen Sie dann den gleichen Vorgang für die verbleibenden Elemente durch, bis alle Elemente sortiert sind.
Das Folgende ist der einfachste Weg, eine Blasensortierung in Java zu schreiben:
public class BubbleSort { public static void bubbleSort(int[] arr) { int len = arr.length; for (int i = 0; i < len - 1; i++) { for (int j = 0; j < len - 1 - i; j++) { if (arr[j] > arr[j + 1]) { // 交换相邻元素的位置 int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } public static void main(String[] args) { int[] arr = {5, 2, 8, 7, 1, 3, 9, 4, 6}; bubbleSort(arr); for (int num : arr) { System.out.print(num + " "); } } }
Im obigen Code definieren wir zunächst eine bubbleSort
-Methode, die ein ganzzahliges Array als Parameter empfängt. Bei dieser Methode verwenden wir zwei verschachtelte for-Schleifen. Die äußere Schleife steuert die Anzahl der Runden und die innere Schleife steuert den Vergleich und Austausch in jeder Runde. bubbleSort
方法,该方法接收一个整型数组作为参数。在该方法中,我们使用两个嵌套的for循环,外层循环控制轮数,内层循环控制每一轮中的比较和交换。
内层循环的初始值是len - 1 - i
,其中len
是数组的长度,i
是当前轮数。这是因为每一轮都会有一个元素移动到正确的位置,所以每一轮结束后,需要比较和交换的元素数量会减少。
在内层循环中,我们使用arr[j]
和arr[j + 1]
进行比较,如果arr[j]
大于arr[j + 1]
,则交换它们的位置。交换使用一个临时变量temp
来暂存arr[j]
的值,然后将arr[j + 1]
的值赋给arr[j]
,最后将temp
的值赋给arr[j + 1]
,完成交换。
在main
方法中,我们创建了一个包含9个整数的数组,并调用bubbleSort
len - 1 - i
, wobei len
die Länge des Arrays und i
der Strom ist gerade Zahl. Dies liegt daran, dass in jeder Runde ein Element an die richtige Position verschoben wird, sodass nach jeder Runde weniger Elemente verglichen und ausgetauscht werden müssen. In der inneren Schleife verwenden wir arr[j]
und arr[j + 1]
zum Vergleich, wenn arr[j]
größer ist als arr[j + 1]
, werden ihre Positionen vertauscht. Exchange verwendet eine temporäre Variable temp
, um den Wert von arr[j]
vorübergehend zu speichern, und weist dann den Wert von arr[j + 1]
zu zu arr[j] und weisen Sie schließlich den Wert von temp
zu arr[j + 1]
zu, um den Austausch abzuschließen. In der Methode main
erstellen wir ein Array mit 9 Ganzzahlen und rufen die Methode bubbleSort
auf, um das Array zu sortieren. Abschließend durchlaufen Sie das Array mit einer for-Schleife und geben jedes Element aus. 🎜🎜Durch Ausführen des obigen Codes können wir die folgende Ausgabe erhalten: 🎜1 2 3 4 5 6 7 8 9🎜Das Obige ist die einfachste Möglichkeit, eine Blasensortierung in Java und spezifische Codebeispiele zu schreiben. Obwohl die Blasensortierung einfach ist, ist sie in praktischen Anwendungen weniger effizient. Daher sollten Sie bei der Verarbeitung großer Datenmengen die Verwendung eines effizienteren Sortieralgorithmus in Betracht ziehen. 🎜
Das obige ist der detaillierte Inhalt vonEine ausführliche Analyse der prägnantesten Implementierung der Blasensortierung in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!