Dörtlü arama ikili arama mantığı ile çalışmaktadır. Aralık dört parçaya ayrılarak aranan sayı dizi içerisinde aranmaktadır. Dörtlü aramının recursive olarak kodlaması aşağıdadır.
NOT: Kodlama C dilinde yapılmıştır.
int dortluara(const int const *dizi, int bas, int son, const int aranan)
{
int first=bas, last=son, orta1, orta2, orta3;
orta2 = (first+last)/2;
orta1 = (first+orta2)/2;
orta3 = (orta2+last)/2;
if(aranan == dizi[first])
return first+1;
if(aranan == dizi[orta1])
return orta1+1;
if(aranan == dizi[orta2])
return orta2+1;
if(aranan == dizi[orta3])
return orta3+1;
if(aranan == dizi[last-1])
return last;
if(aranan > dizi[first] && aranan < dizi[orta1])
{last = orta1;}
if(aranan > dizi[orta1] && aranan < dizi[orta2])
{first = orta1; last = orta2;}
if(aranan > dizi[orta2] && aranan < dizi[orta3])
{first = orta2; last = orta3;}
if(aranan > dizi[orta3] && aranan < dizi[last])
{first = orta3;}
if(first+2 <= last){
if(aranan > dizi[first] && aranan < dizi[orta1])
return dortluara(dizi, first, last, aranan);
if(aranan > dizi[orta1] && aranan < dizi[orta2])
return dortluara(dizi, first, last, aranan);
if(aranan > dizi[orta2] && aranan < dizi[orta3])
return dortluara(dizi, first, last, aranan);
if(aranan > dizi[orta3] && aranan < dizi[last])
return dortluara(dizi, first, last, aranan);
}
else
return -1;
}