Linear vs Binary Search

Artikeln jämför prestanda för linjär och binär sökning på moderna CPU:er, med fokus på små till medelstora sorterade heltalsarrayer. Den belyser att binär sökning, trots sin teoretiska effektivitet, kan vara långsammare och svårare att implementera korrekt för små arraystorlekar jämfört med linjär sökning. För linjär sökning presenteras olika optimeringar, inklusive loop-unrolling, användning av sentinellvärden och utnyttjande av SIMD-instruktioner (SSE2) för att minska grenar och förbättra prestanda. För binär sökning diskuteras utmaningen med oförutsägbara grenar och möjligheten att använda villkorliga flyttinstruktioner (CMOV) för att förbättra prestanda. Projektet syftar till att utforska de respektive fördelarna med de två sökmetoderna under specifika förhållanden och begränsar sig till sökning efter första elementet som är lika med eller större än söknyckeln.