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,则返回该数组。否则,迭代数组,如果第一个位置的元素大于下一个位置的元素,则交换这些元素。

经过第一次遍历后,最大的元素将被固定,并且对除最大元素之外的所有元素调用冒泡排序。在主函数中,定义数组并将其作为参数传递给冒泡排序函数。

更新于: 2024年8月27日

1K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告