Kamis, 03 Februari 2011

Binary Search Di bahasa C

Binary search adalah salah satu metode pencarian data, pada record-record atau yang lainnya. proses kerja binary search mencari datanya unik,,disini saya menggunakan bahasa C, setahu saya datanya harus di sorting terlebih dahulu. mohon maaf kalau ada kekurangan.Yah langsung saja ini listing yang saya buat
================================================================
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

int intcmp(const void *v1, const void *v2);
main()
{
  char ul='y';
    int A[100],i,n,s,l,h,m;
do
{  clrscr();
    printf("\nMasukkan Jumlah Data : ");scanf("%d",&n);
    printf("\nMasukkan Nilai: \n");
    for(i=0;i<n;i++)
        {
           int no=i+1;
            printf("%d. Array Ke %d: ",no,i);scanf("%d",&A[i]);
        }
    puts("Tekan Sembarang Untuk Sorting");//nilai Harus di sorting terlebih dahulu
    getch();
    qsort(A, n, sizeof(A[0]),intcmp);
    for(i=0;i<n;i++)
          {
         int no=i+1;
           printf("%d. Array %d : %d\n",no,i,A[i]);
      }

                printf("\nMasukkan elemen yang ingin anda cari : ");scanf("%d",&s);
            l=0;h=n-1;

                while(l<=h)              //proses mencari.
                    {
                        m=(l+h)/2;
                        if(s==A[m])
                        break;
                        if(s<A[m])
                        h=m-1;
                        else
                        l=m+1;
        }
        if(l<=h)
            printf("\nElemen %d ditemukan pada Array Ke %d",s,m);
      else
            printf("\nElemen Tidak ditemukan");
          printf("\nIngin Mengulang yang lain (Y/T)? ");scanf("%s",&ul);

}
while((ul=='y')||(ul=='Y'));
}

 //fungsi pendukung pada qsort(sorting)
 int intcmp(const void *v1, const void *v2)
 {
     return (*(int *)v1 - *(int *)v2);
 }

3 komentar:

makasih postingannya, sangat membantu.....

terimakasih telah memberikan feedback yang baik :)

Posting Komentar

silahkan comment :)