Linear & Binary search Flashcards
Wat is het basisidee achter een binaire zoekopdracht?
Een binaire zoekopdracht verdeelt de zoekruimte telkens in tweeën om sneller bij het doel te komen. Dit werkt alleen op gesorteerde arrays.
Wat is de belangrijkste voorwaarde om een binaire zoekopdracht te gebruiken?
De array moet gesorteerd zijn om een binaire zoekopdracht te kunnen gebruiken.
Welk zoekalgoritme is efficiënter voor grote, ongeordende datasets: lineair zoeken of binair zoeken?
Lineair zoeken is efficiënter voor ongeordende datasets omdat binair zoeken alleen werkt op gesorteerde arrays.
Wat zijn de overeenkomsten tussen lineair en binair zoeken?
Beide algoritmen zijn bedoeld om een specifiek element in een array te vinden.
Beide retourneren de index van het element als het wordt gevonden, of -1 als het niet wordt gevonden.
Wat zijn de verschillen tussen lineair en binair zoeken?
Tijdcomplexiteit: Lineair zoeken heeft een tijdcomplexiteit van O(N), terwijl binair zoeken O(log N) is.
Dataset: Lineair zoeken werkt op zowel gesorteerde als ongesorteerde arrays, terwijl binair zoeken alleen op gesorteerde arrays werkt.
Methode: Lineair zoeken controleert elk element één voor één, terwijl binair zoeken de array telkens in tweeën splitst.
Schrijf een codefragment in Java voor een lineaire zoekopdracht in een array.
public int linearSearch(int[] arr, int key) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == key) {
return i; // Key gevonden, retourneer index
}
}
return -1; // Key niet gevonden
}
Schrijf een codefragment in Java voor een binaire zoekopdracht in een gesorteerde array.
public int binarySearch(int[] arr, int key) {
int lowerBound = 0;
int upperBound = arr.length - 1;
while (lowerBound <= upperBound) { int mid = (lowerBound + upperBound) / 2; if (arr[mid] == key) { return mid; // Key gevonden, retourneer index } else if (arr[mid] < key) { lowerBound = mid + 1; // Zoeken in de bovenste helft } else { upperBound = mid - 1; // Zoeken in de onderste helft } } return -1; // Key niet gevonden }