Это вопрос: массив сортируется (в порядке возрастания), если каждый элемент массива меньше или равен следующему элементу.
Написать метод с логическим значением isSorted, который принимаетцелочисленный массив, а также количество элементов в массиве и возвращает, отсортирован ли массив.
Перед показом кода: моя логика заключается в том, что оператор if else-if и else должен сначала определить, равен ли размер массива 0,1 или 2. Это потому, что когда размер равен 1 или 2, программа должна сломаться.Если размер больше 2, программа должна проверить arr [size-1]> arr [size-2], а затем снова вызвать метод с уменьшенным размером, если это правда, и просто вернуть false, если это не так.Когда я запустил эту программу, следующие 2 теста не прошли: [1,3,2,4] и [2,1,2,3,4].Из-за этого я указал, что когда размер равен 2, метод возвращает false, если arr [0]> arr [1], однако это не сработало.Что я делаю неправильно?Я не хочу просто искать ответ, потому что я готовлюсь к тесту, поэтому мне жаль, если есть повторные ответы.
Я знаю, что цикл лучше, я просто хотел изучить рекурсию
public boolean isSorted(int[] arr, int size) {
if(size == 0 || size == 1) {
return true;
} else if (size == 2) { //this is the part I don't get.
if (arr[0] > arr[1]) {
return false;
} else {
isSorted(arr,size-1);
return true;
}
} else {
if (arr[size-1] < arr[size-2]) {
return false;
} else {
isSorted(arr, size-1);
return true;
}
}
}