Senin, 23 Desember 2013

Sequential Search And Binary Search





Sequential search adalah teknik pencarian data dimana data dicari secara urutdari depan ke belakang atau dari awal sampai akhir. Kelebihannya jika data yang dicari terletak di depan maka akan  ditemukan dengan cepat. Kekurangannya, jika data yang di cari terletak dibelakang atau paling akhir, maka akan membutuhkan waktu yang lama untuk proses pencariannya.


Berikut Codingnya :
 
package SequentialSearch;
public class SequentialSearch {
    public static void main(String[] args) {
        int[]T = {5,80,28,15,50,49};
        int R = seqsearch(T,15,T.length);
        if(R!=-1);
    System.out.println("Nilai yang dicari ditemukan pada posisi ke" +R);

    }
     public static  int seqsearch(int[]dataset,int target,int n){
         int a=0;
         int i;
         int R = -1;
         for(i=0;i<n && a!=1;i++)
             if(target == dataset[i])
             {R=i; a =1;}
         return R;

     }
}

Output : 


Binarry search adalah algorima pencarian untuk data yang terurut. Pencarian dilakukan dengan cara menebak apakah data yang dicari berada ditengah-tengah data, kemudian membandingkan data yang dicari dengan data yang ada di tengah.

Bila data yang ditengah sama dengan data yang dicari, berarti data ditemukan. Namun bila data yang ditengah  kelih besardari data yang dicari, maka dapat dipastikan data yang dicari kemungkinan berada di sebelah kiri atau di sebelah kanan.


Berikut Codingnya :

package binary;
public class binary {
    public static void main(String[] args) {
        int N = 8;
        int batasAtas, batasBawah, batasTengah;
        int  A[]={2,5,9,7,6,8,3,4};
        batasAtas = 0;
        batasBawah = N-1;
        batasTengah= 0;
        int cari =1;
        boolean temukan;
        temukan = false;

        while ((batasBawah <= batasAtas) && (temukan == false)){
            batasTengah = (batasBawah + batasAtas)/2;
            if (A[batasTengah]==cari){
                temukan = true;
            }else
                if (A[batasTengah] <= cari){
                    batasAtas = batasTengah + 1;


                }else{
                batasBawah = batasTengah - 1;
                }
        }
        if(temukan){
            System.out.println(("Data ") + cari +( " ada di deret array"));
        } else {
            System.out.println(("Data ") + cari + (" tidak ada di deret array"));
        }
    }
}
 
Output :

Tidak ada komentar:

Posting Komentar