Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Loop door alle getallen in numbers, gebruik i als iterator en begin bij 0.
  • Loop opnieuw door alle getallen in numbers, gebruik j = i + 1, doorloop numbers en verhoog i.
  • Maak de return-instructie af om true terug 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 ____;
    }
}
Code bewerken en uitvoeren