Neler yeni
Türkiye'nin En Güncel Forum Sitesi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı yada giriş yapmalısınız. Forum üye olmak tamamen ücretsizdir.

Java ile Statik Dizilerde İkili Arama Metotları /

ByOnur58

Kayıtlı Üye
MFC Üyesi
  • Üyelik Tarihi
    7 Ocak 2015
  • Mesajlar
    2,113
  • MFC Puanı
    10
  • MFC Seviyesi

Kod:
public class İkiliArama {
//Eşitliği Sağlamayan İkili Arama
    public static int binarySearch(int target,int[] dizi){
        int bottom = 0;
        int top = dizi.length-1;
        int middle;
        while(bottom < top){
            middle = (bottom+top)/2;
            if(dizi[middle] < target){
                bottom = middle+1;
            }
            else
                top = middle;
        }
        if(top < bottom){
            return -1;
        }
        else{
            if(dizi[bottom] == target)
                return bottom;
            return -1;
        }
    }
    //Eşitliği Sağlayan İkli Arama
    public static int binarySearch2(int target,int[] dizi){
        int bottom = 0;
        int top = dizi.length-1;
        int middle = 0;
        boolean found = false;
        while(found == false && bottom <= top){
            middle = (bottom+top)/2;
            if(dizi[middle] == target){
                found = true;
            }
            else if(dizi[middle] < target){
                bottom = middle+1;
            }
            else
                top = middle-1;
        }
        if(found)
            return middle;
        else
            return -1;
    }
    //Eşitliği Sağlayan Recursive İkili Arama
    public static int binarySearch3(int target,int dizi[],int bottom,int top){
        int middle;
        if(bottom < top){
            middle = (bottom+top)/2;
            if(dizi[middle] == target)
                return middle;
            else if(dizi[middle] < target){
                return binarySearch3(target, dizi, middle+1, top);
            }
            else
                return binarySearch3(target, dizi, bottom, middle-1);
        }
        else
            return -1;
    }
}
 
Üst Alt