我对编程很陌生,刚在大学里学过。我有一个任务,我必须在 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/