Is a List Sorted? Help!

Здравейте на всички!

Моля за помощ че не знам как да имплементирам isSorted така, то да връща не само резултата от чекването на последните два елемента (както е вмомента и затова ми излиза грешен резултат), а то да чеква целият масив (както трябва според задачата).

Input

3
1,2,3,4,5
1,2,8,9,9
1,2,2,3,2

Output

true
true
false

Кодът:

Благодаря предварително!

Проблемът ти идва от тaзи проверка:

if (array[i] <= array[i + 1])
    sorted = true;

Тук проверяваш дали всеки следващ елемент е по-голям от предишния и записваш резултата.
Трябва да записваш резултата само ако не е по-голям,
защото ако например имаш

int[] arr = {5, 4, 3, 2, 1, 10};

Ще направиш 5 проверки и резултатът от всяка ще е:
false, false, false, false, true и така като винаги записваш резултатът от последната, ще ти върне true.
За да го избегнеш трябва да кажеш, че ако array[i] <= array[i + 1] е true, значи всичко е наред и продължи към следващата итерация. Това става с думата continue.

Направи sorted да е равно на true. Приемаш, че по default ще е сортиран листа.

boolean sorted = true;

и след това само промени първият if да не записва резултат, а да е continue;

if (array[i] <= array[i + 1])
    continue;

Съветвам те да дебъгнеш след като сложиш continue и ще ти се изясни всичко.

1 Like

100 от 100! Много Благодаря!

1 Like