冒泡排序是Java中最常用的資料排序演算法之一。排序是透過遞歸比較相鄰數字並按升序或降序移動它們來完成的。完成元素的移動,直到所有數字都按照所需的順序完全排序。冒泡排序之所以得名,是因為陣列冒泡的元素是它們的開始方式。讓我們透過一個例子來理解冒泡排序演算法。
範例:考慮需要按升序排列的數字陣列 [6 1 8 5 3]。
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
冒泡排序演算法會進行多次迭代,直到發現所有數字都已排序。
以下是Java中冒泡排序的迭代過程如下:
由於數字仍未完全增加,程式進行第二次迭代。
[1 6 5 3 8] – 這裡,再從第一次迭代結果的前兩位開始比較。它比較數字 1 和 6 並保留相同的順序,因為 1 小於 6。 [1 6 5 3 8] – 此處比較數字 5 和 6。保留相同的順序,因為它已經處於所需的遞增順序中。 [1 5 6 3 8] – 數字 6 和 3 之間發生比較。數字 3 向左移動,因為它小於 6。 [1 5 3 6 8] – 接下來,數字 6 和 8 會互相比較。保留與預期順序相同的順序。 [1 5 3 6 8] – 這是第二次迭代後的最終結果。儘管如此,我們仍然可以注意到數字並沒有完全按照升序排列。儘管如此,我們仍然需要交換數字 5 和 3 才能得到最終結果。因此程序進行第三次迭代。由於只需對陣列的 5 個元素進行排序,因此只需要 3 次迭代。隨著數組中元素的增加,迭代次數也會增加。
下面是Java程式碼,它實作了冒泡排序演算法。 (請注意,Java 中數組的第一個位置從 0 開始,以 1 為增量繼續,即 array[0]、array[1]、array[2],如此繼續。)
代碼:
import java.util.Scanner; public class BubbleSort { static void bubbleSort(int[] arraytest) { int n = arraytest.length; //length of the array is initialized to the integer n int temp = 0; //A temporary variable called temp is declared as an integer and initialized to 0 for(int i=0; i < n; i++){ // first for loop performs multiple iterations for(int j=1; j < (n-i); j++){ if(arraytest[j-1] > arraytest[j]){ // if loop compares the adjacent numbers // swaps the numbers temp = arraytest[j-1]; // assigns the greater number to temp variable arraytest[j-1] = arraytest[j]; // shifts the lesser number to the previous position arraytest[j] = temp; // bigger number is then assigned to the right hand side } } } } public static void main(String[] args) { int arraytest[] ={23,16,3,42,75,536,61}; // defining the values of array System.out.println("Array Before Doing Bubble Sort"); for(int i=0; i < arraytest.length; i++){ // for loop used to print the values of array System.out.print(arraytest[i] + " "); } System.out.println(); bubbleSort(arraytest); // array elements are sorted using bubble sort function System.out.println("Array After Doing Bubble Sort"); for(int i=0; i < arraytest.length; i++){ System.out.print(arraytest[i] + " "); // for loop to print output values from array } } }
輸出:
以下是 Java 中冒泡排序的不同優點和缺點:
由於冒泡排序能夠檢測排序中的微小錯誤,因此它被用於電腦圖形學中。它也用在多邊形填充演算法中,需要對多邊形的頂點襯裡進行排序。
本文了解了冒泡排序演算法的工作原理以及如何使用 Java 程式設計來實現它。冒泡排序是一種非常穩定的演算法,可以針對相對較小的資料集輕鬆實現。這是一個比較演算法的案例,由於簡單,適合新手使用。
以上是Java 中的冒泡排序的詳細內容。更多資訊請關注PHP中文網其他相關文章!