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,则返回该数组。否则,迭代数组,如果第一个位置的元素大于下一个位置的元素,则交换这些元素。
经过第一次遍历后,最大的元素将被固定,并且对除最大元素之外的所有元素调用冒泡排序。在主函数中,定义数组并将其作为参数传递给冒泡排序函数。
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP