java - 使用递归方法对数组进行排序

标签 java arrays recursion

我正在尝试编写一个程序,用户将输入 6 个字符串,然后它将使用递归方法按相反的字母顺序对数组进行排序。这是一个我不理解的概念,尽管有多个视频、阅读和尝试。非常感谢任何支持和见解。谢谢。

import java.util.Arrays;
import java.util.Scanner;

public class SRecusion {


    public static void sort2 (String[] sort2) {
        int i;
        int min = 0;
        int max;

        for (i = 0; i <sort2.length -1; i++) {
            if (sort2[i].charAt(0)> sort2[i=1].charAt(0)) {
                sort2[i] = sort2[min];
            }
            else {
                min = (sort2(sort2[i-1]));
            }
        }
    }



    public static void main(String[] args) {
        // TODO Auto-generated method stub

        String [] test = new String[6];
        Scanner scnr = new Scanner(System.in);
        String userEntry = "";

        for(int i = 0; i <= test.length - 1; i++) {
            System.out.println("Please enter a word:");
            test[i] = scnr.nextLine();
        }

        sort2(test);




            System.out.println("your list is" + Arrays.asList(test));
            System.out.println();

        }

}

最佳答案

排序是一个非常广泛的主题,因为有许多不同的排序方法(快速排序、合并排序等)。但是,一种非常基本且简单的排序方法是冒泡排序。尽管它不是最快的,但它很容易理解并使用递归进行编码。

本质上,冒泡排序是迭代 2 个元素对中的元素,如果两个元素的顺序错误,则交换这两个元素。

例如,让我们使用冒泡排序对 (3, 2, 5, 4, 1) 进行排序。

(2, 3, 5, 4, 1) 首先,它会查看前两个元素,并根据需要进行交换。由于 3 大于 2,因此它将交换它们。

(2, 3, 5, 4, 1) 接下来,它会查看 3 和 5。由于 3 小于 5,因此无需交换

(2, 3, 4, 5, 1) 现在它会查看 5 和 4 并交换它们。

(2, 3, 4, 1, 5) 最后,它查看 5 和 1 并交换它们。

现在从头开始并重复整个过程。如果迭代期间正好进行 0 次交换,则排序结束。

如果您仍然有点困惑,请尝试观看有关冒泡排序的教程或访问此 link .

关于java - 使用递归方法对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52751477/

相关文章:

java - Jersey 多个可以在同一路径上获得响应吗?

Java - 使绘画程序更干净

arrays - 在 Swift 中读取 plist 文件的内容

java - 检索文件夹和子文件夹以使用尾递归在 Java 中读取文件

c - 递归函数: why some compailers dont like return in conditions

php - 检查返回数组中是否有更多引用递归的 MYSQL 查询是什么?

java - 将数据库表转换为 JTree

java - 更改 AbstractTableModel 的列名称

ios - 从 FBSDKGraphRequest 获取照片时出现 "unsupported URL"

javascript - Node.js 中的 Promise 和数组