<< UPDATE >>
 

Binary Search Pake Bahasa C

27 Februari 2010

proffesor-emoticonIni sebenernya algoritma pas mata kuliah Struktur Data, tapi di tagih lagi ma dosen pas Mata Kuliah Analisis dan Strategi Algoritma, ya udah deh tinggal buka file yang telah di buat... sekalian aja q posting, barang kali ntar filex ilang kan dah tak posting.., jadi tinggal buka lagi..., mudah2an juga bermanfaat buat kamu juga... ya wes nih langsung aja Binary Search pake bahasa C-nya,

#define BENAR 0
#define SALAH 1

int main(void) {
int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int kiri = 0;
int kanan = 10;
int tengah = 0;
int Nomor = 0;
int bsearch = SALAH;
int i = 0;

printf("ARRAY: ");
for(i = 1; i <= 10; i++) printf("[%d] ", i); printf("\nNomor yang di cari: "); scanf("%d", &Nomor); while(bsearch == SALAH && kiri <= kanan) { tengah = (kiri + kanan) / 2; if(Nomor == array[tengah]) { bsearch = BENAR; printf("** Nomor Ditemukan **\n"); } else { if(Nomor < kanan =" tengah"> array[tengah]) kiri = tengah + 1;
}
}

if(bsearch == SALAH)
printf("-- Nomor Tidak Ditemukan --\n");

return 0;
}
Algoritma Binary search sangat berguna jika melakukan pencarian pada suatu nilai yang berurutan, ini lebih efisien daripada Squensial Search ato pencarian yang melakukan pengecekan dari depan... tapi antara squensial ma binary tergantung di mana kita menerapkannya... kalo kamu ga percaya knp binary lebih efisien di pencarian yang nilai nya berurutan coba souce berikut ini, source ini mengasumsikan bahwa nilai array bersifa random, berikut sourcenya :
#include
#include

#define BENAR 0
#define SALAH 1

int main(void) {
int array[10];
int kiri = 0;
int kanan = 10;
int tengah = 0;
int Nomor = 0;
int bsearch = SALAH;
int i = 0;

for(i = 1; i<=10; i++) array[i] = rand() % 10; printf("ARRAY: "); for(i = 1; i <= 10; i++) printf("[%d] ", i); printf("\nNomor yang di cari: "); scanf("%d", &Nomor); while(bsearch == SALAH && kiri <= kanan) { tengah = (kiri + kanan) / 2; if(Nomor == array[tengah]) { bsearch = BENAR; printf("** Nomor Ditemukan **\n"); } else { if(Nomor < kanan =" tengah"> array[tengah]) kiri = tengah + 1;
}
}

if(bsearch == SALAH)
printf("-- Nomor Tidak Ditemukan --\n");

return 0;
}
Nah beres kan?? blogger-emoticon.blogspot.com

Bagikan

Udah Baca ini??

1 komentar:

Anonim mengatakan...

kang andy saya mau jadi penggemar tulisan-tulisan anda yah,,
sangat membantu saya dalam mengerjakan tugas kuliah...
salam..



http://Meidhyandarestablogme.wordpress.com

Posting Komentar

 
 
 
 
Copyright © Kang Andi