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,则返回该数组。否则,迭代数组,如果第一个位置的元素大于下一个位置的元素,则交换这些元素。
经过第一次遍历后,最大的元素将被固定,并且对除最大元素之外的所有元素调用冒泡排序。在主函数中,定义数组并将其作为参数传递给冒泡排序函数。
广告