Linear & Binary search Flashcards

1
Q

Wat is het basisidee achter een binaire zoekopdracht?

A

Een binaire zoekopdracht verdeelt de zoekruimte telkens in tweeën om sneller bij het doel te komen. Dit werkt alleen op gesorteerde arrays.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wat is de belangrijkste voorwaarde om een binaire zoekopdracht te gebruiken?

A

De array moet gesorteerd zijn om een binaire zoekopdracht te kunnen gebruiken.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Welk zoekalgoritme is efficiënter voor grote, ongeordende datasets: lineair zoeken of binair zoeken?

A

Lineair zoeken is efficiënter voor ongeordende datasets omdat binair zoeken alleen werkt op gesorteerde arrays.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wat zijn de overeenkomsten tussen lineair en binair zoeken?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wat zijn de verschillen tussen lineair en binair zoeken?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Schrijf een codefragment in Java voor een lineaire zoekopdracht in een array.

A

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
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Schrijf een codefragment in Java voor een binaire zoekopdracht in een gesorteerde array.

A

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 }
How well did you know this?
1
Not at all
2
3
4
5
Perfectly