Java遞迴氣泡排序程式
在本文中,我們將學習如何在Java中使用遞迴實現氣泡排序。我們的目標是瞭解如何將遞迴應用於氣泡排序演算法,以實現與其迭代對應演算法相同的排序效果。
問題陳述
編寫一個 Java 程式,使用氣泡排序的遞迴方法對整數陣列進行排序。
輸入
my_arr[] = {45, 67, 89, 31, 63, 0, 21, 12}
輸出
The array after implementing bubble sort is
[0, 12, 21, 31, 45, 63, 67, 89]
氣泡排序演算法
氣泡排序演算法是一種簡單的排序演算法,用於對元素進行排序。它比較列表中的每一對專案,如果它們沒有按正確的順序排列,則交換它們。
Algorithm: Sequential-Bubble-Sort (A) fori ← 1 to length [A] do for j ← length [A] down-to i +1 do if A[A] < A[j-1] then Exchange A[j] ⟷ A[j-1]
氣泡排序遞迴方法的步驟
以下是使用氣泡排序的遞迴方法對整數陣列進行排序的步驟:
- 首先,我們將從Arrays 類匯入java.util 包。
- 定義類名Demo,並在該 demo 類中定義一個名為bubble_sort的靜態方法。
- 一個for 迴圈遍歷陣列,比較相鄰元素,如果一個元素大於下一個元素,則交換這兩個元素。
- 由於 main 方法是程式的入口點,它將使用給定值初始化一個數組並呼叫bubble_sort 方法。
- 最後,當排序完成後,它會列印排序後的陣列。
氣泡排序遞迴方法的 Java 程式
以下是氣泡排序遞迴方法的 Java 程式:
import java.util.Arrays; public class Demo{ static void bubble_sort(int my_arr[], int len_arr){ if (len_arr == 1) return; for (int i=0; i<len_arr-1; i++) if (my_arr[i] > my_arr[i+1]){ int temp = my_arr[i]; my_arr[i] = my_arr[i+1]; my_arr[i+1] = temp; } bubble_sort(my_arr, len_arr-1); } public static void main(String[] args){ int my_arr[] = {45, 67, 89, 31, 63, 0, 21, 12}; bubble_sort(my_arr, my_arr.length); System.out.println("The array after implementing bubble sort is "); System.out.println(Arrays.toString(my_arr)); } }
輸出
The array after implementing bubble sort is [0, 12, 21, 31, 45, 63, 67, 89]
程式碼解釋
名為Demo的函式包含執行氣泡排序的函式。如果陣列的長度為 1,則返回該陣列。否則,迭代陣列,如果第一個位置的元素大於下一個位置的元素,則交換這些元素。
經過第一次遍歷後,最大的元素將被固定,並且對除最大元素之外的所有元素呼叫氣泡排序。在主函式中,定義陣列並將其作為引數傳遞給氣泡排序函式。
廣告