gpt4 book ai didi

Java:使用递归检查数组是否有序

转载 作者:行者123 更新时间:2023-11-30 08:32:44 24 4
gpt4 key购买 nike

我正在尝试学习递归。我想检查数组是否使用递归排序,但我的代码有问题,因为当索引达到值 2 时,下一步应该是达到基本情况,但事实并非如此。这是我的代码,我做错了什么?

public class ArrayOrdered {

public static boolean isArrayInSortedOrder(int[] array, int index)
{
boolean b;
int a1;
int a2;

if(array.length == 1 || index == 1){//base case
b=true;
}else{
b=false;
a1 = array[index - 1];
a2 = array[index - 2];
if((a1 > a2)){//ordered
isArrayInSortedOrder(array, index - 1);
}
}

return b;
}

public static void main(String[] args) {
int index=20;
int[] array={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
boolean bool = isArrayInSortedOrder(array, index);
if(bool)
System.out.println("Array ordered");
if(!bool)
System.out.println("Array NO ordered");
}

}

最佳答案

您正在调用 isArrayInSortedOrder(array, index - 1),但忽略了它的返回值。请考虑以下事项:

public static boolean isArrayInSortedOrder (int[] array, int index) {
if (array.length == 1 || index == 1) { //base case
return true;
}

int a1 = array[index - 1];
int a2 = array[index - 2];
if (a1 > a2) {
return isArrayInSortedOrder(array, index - 1);
}

return false;
}

关于Java:使用递归检查数组是否有序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39937320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com