Opgepast! Het lijkt erop dat je Dodona gebruikt binnen een andere webpagina waardoor mogelijk niet alles goed werkt. Laat dit weten aan de lesgever zodat die het probleem kan oplossen door een instelling in de leeromgeving aan te passen. Ondertussen kan je op deze link klikken om Dodona te openen in een nieuw venster.
Opgepast! De pagina kon niet volledig ingeladen worden, waarschijnlijk door een netwerkprobleem. Het kan zijn dat niet alle functionaliteit beschikbaar is. Probeer de pagina te verversen.
Binair zoeken — oefening
Log in om je oplossingen te testen.
// De gesorteerde lijst en de in- en uitvoer zijn al voorzien.
// Jij hoeft enkel de functie IndexInLijst hieronder in te vullen.
int[] lijst = new int[]
{
5, 6, 12, 19, 23, 26, 31, 33, 40, 44, 49, 56, 60, 65, 72, 76,
78, 79, 85, 86, 89, 95, 100, 109, 111, 120, 123, 125, 134, 143, 152, 157,
165, 174, 179, 180, 188, 189, 198, 207, 213, 216, 223, 229, 237, 243, 244, 250,
251, 257, 266, 270, 275, 282, 286, 291, 294, 298, 306, 308, 315, 316, 317, 324,
328, 330, 332, 336, 340, 345, 347, 353, 359, 363, 370, 379, 387, 396, 403, 406,
410, 411, 418, 421, 429, 432, 439, 443, 451, 453, 460, 461, 465, 473, 480, 489,
494, 501, 504, 510, 516, 518, 519, 524, 532, 540, 544, 549, 554, 559, 562, 566,
571, 580, 583, 585, 593, 600, 608, 616, 620, 627, 632, 634, 641, 642, 651, 654,
655, 659, 667, 674, 681, 686, 688, 692, 695, 703, 705, 710, 716, 718, 722, 724,
732, 735, 737, 738, 746, 752, 760, 762, 764, 767, 769, 774, 775, 782, 790, 799,
807, 810, 814, 819, 827, 835, 839, 842, 844, 852, 858, 860, 869, 875, 878, 882,
886, 894, 895, 899, 908, 914, 921, 927, 931, 934, 943, 952, 953, 954, 959, 963,
964, 965, 971, 976, 981, 987, 991, 998
};
// Lees het gezochte getal en druk het resultaat af. Dit is al voorzien:
int gezocht = Convert.ToInt32(Console.ReadLine());
int index = IndexInLijst(lijst, gezocht);
if (index < 0)
{
Console.WriteLine(gezocht + " zit niet in de lijst");
}
else
{
Console.WriteLine(gezocht + " staat op index " + index);
}
// Geef de (nul-gebaseerde) index terug van getal in getallen,
// of -1 als getal niet in de lijst zit. Gebruik binair zoeken.
int IndexInLijst(int[] getallen, int getal)
{
// TODO: implementeer hier binair zoeken.
// Tip: hou een linkergrens en een rechtergrens bij, bereken telkens
// het midden met een gehele deling, en gooi de helft weg waarin
// getal niet kan zitten.
return -1; // pas dit aan
}