java - 在Java中递归地对数字的数字进行排序

标签 java algorithm sorting recursion

我对编程很陌生,刚在大学里学过。我有一个任务,我必须在 java 中递归地解决这个问题(不使用数组、if、else、while 等...)

所以任务是对从 13542 到 12345 的数字进行排序。

public static void main(String[] args) {
    System.out.println(sort(13542));

}

public static long sort(long n) {
    return n < 10
            ? n
            : sort(n, 0);
}

public static long sort(long n1, long n2) {
    return n1 > 10
            ? xxx
            : xxx;
}

问题是我不知道该怎么做。我认为我的开始是可以的,但是第二种方法我有问题。

最佳答案

首先,简单来说,递归意味着你有一些东西重复调用自己。作业是递归的这一事实暗示了您的讲师希望您如何使用递归方法解决它。

暂时忽略 main,因为虽然它可以被美化并变得更优雅,但这不是问题的核心。

public int recursiveSort(int toSort){

}

为了整洁起见,我们需要一个方法来检查它是否已排序,并进行排序。

public Boolean isSorted(int toCheck){
    //TODO: Check if input is sorted
}

public int singleSort(int toSort){
    //TODO: Sorting algorithm
}

这给了我们一个递归的方法

public int recursiveSort(int toSort){
    toSort = singleSort(toSort);
    return isSorted(toSort) ? toSort : recursiveSort(toSort);
}

施加约束的排序是棘手的部分,具体取决于您不能使用的内容。
当然,试着看看 different sorting algorithms并考虑在这种情况下如何实现它们。

关于java - 在Java中递归地对数字的数字进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49014398/

相关文章:

java - 在 PrintWriter 的情况下,为什么我应该在循环中而不是在循环之后刷新?

java - 是否可以从 JavaSE 应用程序无缝连接到 000webhost.com 上托管的 MySQL 数据库?

c++ - 如何将 map 移动到其他 map

c++ - 如何在 C++ 中使用 STL 排序对类中的某些值进行排序?

php - 使用下拉菜单对电影进行排序

java - 如何单击另一个列表中列表内的链接

java - 在 RMI 函数中获取 RMI 套接字?

algorithm - 如何查找出现次数大于2的字符串中的所有字符

java - 为什么这个算法使用Java中的按位与运算符?

php - 如何根据每个对象的属性对对象数组进行排序