Minggu, 15 Mei 2016

Mencari nilaipada deret bilangandengan metode pencarian biner, sehingga menghasilkan indeks elemen array tempat ditemukannya nilai tersebut.

#include <iostream>
#define UKURAN 15
using namespace std;




void cetakBaris(int b[], int rendah, int mid, int tinggi)
{ int i;
for (i=0; i<=UKURAN-1; i++)
if (i<rendah || i>tinggi) cout << "  ";
else if (i==mid) cout << "*" << b[i]<<" ";
else cout << b[i] << " ";
cout << "\n";
}



int pencarianBiner(int b[], int kunciPencarian, int rendah, int tinggi )
{ int i, middle;
while (rendah <= tinggi) {
middle = (rendah+tinggi) / 2;
cetakBaris(b, rendah, middle, tinggi);
if (kunciPencarian == b[middle])
return middle;
else if (kunciPencarian < b[middle])
tinggi = middle - 1;
else rendah = middle + 1;
}
return -1;
}



main() {
int a[UKURAN]={1, 2, 8, 25, 30, 49, 50, 55, 60, 61, 68, 70, 72, 84,
90}, i, kunci, hasil;
for (i=0; i<=UKURAN-1; i++){
cout<<a[i]<<" ";   
   
}

cout<<endl<<endl;


cout << "Masukkan bilangan yg ingin dicari index nya : ";
cin >> kunci;


hasil=pencarianBiner(a,kunci,0,UKURAN-1);
if (hasil != -1) cout << kunci

<< " ditemukan pada index : "<< hasil;
else
cout << kunci << " tidak ditemukan";
return 0;
}

Tidak ada komentar:

Posting Komentar

Diberdayakan oleh Blogger.

search

BTemplates.com

Blogroll

Pages - Menu

Pages - Menu