b'\n_START_ARTICLE_\nLineair zoeken\n_START_PARAGRAPH_\nIn de informatica is lineair zoeken (of sequentieel zoeken) een zoekalgoritme om een hoeveelheid data (meestal lijsten) te doorzoeken. Het algoritme begint bij het eerste element in een lijst en bekijkt elk volgend element totdat het gezochte element gevonden is._NEWLINE_In het slechtste geval, worst case, moeten alle elementen bekeken worden; de benodigde tijd is hierdoor O(n) waarbij n het aantal elementen in de lijst is. In het beste geval is het gezochte element het eerste element in de lijst waardoor er slechts 1 vergelijking nodig is. Wanneer de elementen willekeurig over de lijst verdeeld zijn, zijn er gemiddeld n/2 vergelijkingen nodig om het element te vinden._NEWLINE_Lineair zoeken kan worden gebruikt om een ongesorteerde lijst te doorzoeken. Om een lange gesorteerde lijst te doorzoeken is bisectie (binair zoeken) het meest effici\xc3\xabnt. Als n groot is, kan het effici\xc3\xabnter zijn om de lijst eerst te sorteren (met een sorteeralgoritme) en dan binair zoeken te gebruiken in plaats van lineair zoeken. Een andere manier is een hashtabel maken en daarin waarden op te zoeken.\n_START_SECTION_\nWerking\n_START_PARAGRAPH_\nBij het doorlopen van de lijst wordt bij het eerste element begonnen. Indien dat element niet het gezochte element is, bekijkt het algoritme het volgende element. Zo wordt de hele lijst afgelopen tot het gevonden is (of niet, indien het element zich niet in de lijst bevindt). Het aantal bewerkingen is dus (in het slechtste geval) evenredig met het aantal elementen in de lijst, n. Dit is een eerstegraadsfunctie of een rechte wat ook de term lineair verklaart._NEWLINE_In pseudocode verloopt het lineair zoeken in lijst L als volgt:_NEWLINE_for each element in lijst L_NEWLINE_  if element == gezochte element_NEWLINE_    return gevonden_NEWLINE_return niet gevonden\n_START_SECTION_\nImplementatie\n_START_PARAGRAPH_\nIn de volgende implementaties wordt de lijst {1, 9, 2, 3, 5, 6} doorzocht om te kijken of \'3\' voorkomt.\n_START_SECTION_\nImplementatie in C\n_START_PARAGRAPH_\nint lijst[] = {1,9,2,3,5,6};_NEWLINE_ int gezocht = 3;_NEWLINE_ int lengte = 6;_NEWLINE_ for (int n = 0; n < lengte; n++) {_NEWLINE_   if (lijst[n] == gezocht) {_NEWLINE_     return true;_NEWLINE_   }_NEWLINE_ }_NEWLINE_ return false;\n_START_SECTION_\nImplementatie in Haskell\n_START_PARAGRAPH_\nDe volgende functie levert op of een element voorkomt in een lijst:_NEWLINE__NEWLINE_ zoekLijst :: [Int] -> Int -> Bool_NEWLINE_ zoekLijst []     _ = False_NEWLINE_ zoekLijst (x:xs) n | x == n    = True_NEWLINE_                    | otherwise = zoekLijst xs n_NEWLINE_In het voorbeeld zou de aanroep van deze functie zijn: zoekLijst [1,9,2,3,5,6] 3\n_START_SECTION_\nImplementatie in VBScript\n_START_PARAGRAPH_\nDe volgende functie geeft een boolean terug die true is als het element voorkomt in de lijst_NEWLINE__NEWLINE_ function zoekLijst(arrLijst, intZoeken)_NEWLINE_   for i = 0 to UBound(arrLijst)_NEWLINE_     if arrLijst(i) = intZoeken then_NEWLINE_       return true_NEWLINE_     end if_NEWLINE_   next_NEWLINE_   return false_NEWLINE_ end function\n_START_SECTION_\nImplementatie in C#\n_START_PARAGRAPH_\nstatic void Main(string[] args){_NEWLINE_  byte[] tabel = {4, 8, 2, 6, 7};_NEWLINE_  byte gezocht = 7;_NEWLINE_  if (GezochtGevonden(tabel, gezocht))_NEWLINE_  {_NEWLINE_    Console.Write("Gevonden");_NEWLINE_  } else {_NEWLINE_    Console.Write("Niet gevonden");_NEWLINE_  }}private bool GezochtGevonden(byte[] tabel, byte gezocht){_NEWLINE_  for (byte i = 0; i < tabel.Length; i++)_NEWLINE_  {_NEWLINE_    if (tabel[i] == gezocht)_NEWLINE_    {_NEWLINE_      return true;_NEWLINE_    }_NEWLINE_  }_NEWLINE_  return false;}/*GezochtGevonden*/'