Een sorteertester implementeren
Je implementeert een methode om te controleren of een ArrayList met gehele getallen in oplopende volgorde is gesorteerd. De huidige implementatie vergelijkt elk mogelijk paar elementen in de lijst om te waarborgen dat ze in de juiste volgorde staan.
Deze oefening maakt deel uit van de cursus
Code optimaliseren in Java
Oefeninstructies
- Loop door alle getallen in
numbers, gebruikials iterator en begin bij0. - Loop opnieuw door alle getallen in
numbers, gebruikj = i + 1, doorloopnumbersen verhoogi. - Maak de return-instructie af om
trueterug te geven wanneer je geen paar in de verkeerde volgorde hebt gevonden.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
public class Main {
public static void main(String[] args) {
int arraySize = 1000;
ArrayList unsortedNumbers = new ArrayList<>();
for (int i = 0; i < arraySize; i++) {
unsortedNumbers.add(i);
}
int temp = unsortedNumbers.get(arraySize - 1);
unsortedNumbers.set(arraySize - 1, unsortedNumbers.get(arraySize - 2));
unsortedNumbers.set(arraySize - 2, temp);
SortChecker checker = new SortChecker();
boolean result = checker.isSorted(unsortedNumbers);
System.out.println("Unsorted array result: " + result);
}
}
class SortChecker {
public boolean isSorted(ArrayList numbers) {
// Iterate through all the numbers
for (int i = ____; i < numbers.size(); ____) {
// Iterate through all the numbers again
for (int j = ____; j < numbers.size(); ____) {
if (numbers.get(i) > numbers.get(j)) {
return false;
}
}
}
// Return if we have not returned false so far
return ____;
}
}