Nama : Meta Lara Pandini
NIM : 0907055058
#include
#include
void binary_search(int tabel1[], int max, int cari, int &indeksnya);
void seq_search(int tabel1[], int max);
main()
{
int a, imax, nilainya, indeksnya;
cout << "Input Banyaknya Nilai : ";
cin >> imax;
int tabelnya[100];
for (a=1;a<=imax;a++)
{
cout << "Nilai ke-" << a << " : ";
cin >> tabelnya[a];
}
seq_search(tabelnya, imax);
cout << "\nTabel setelah diurutkan " << endl;
for (a=1;a<=imax;a++)
{
cout << "Nilai ke-" << a << " = " << tabelnya[a] << endl;
}
cout << "Nilai yang ingin dicari = ";
cin >> nilainya;
binary_search(tabelnya, imax, nilainya, indeksnya);
if (indeksnya != 0)
cout << "Indeks = " << indeksnya;
else
cout << "Data tidak ditemukan";
getch();
return 0;
}
void seq_search(int tabel1[], int max)
{
int a, b, temp;
for (a=2;a<=max;a++)
{
temp = tabel1[a];
b = a - 1;
while ((b>=1) && (temp < tabel1[b]))
{
tabel1[b+1] = tabel1[b];
b--;
}
tabel1[b+1] = temp;
}
}
void binary_search(int tabel1[], int max, int cari, int &indeksnya)
{
int atas, bawah, tengah;
bool ketemu;
bawah = 1;
atas = max;
ketemu = false;
while ((bawah < atas) && (!ketemu))
{
tengah = ((bawah+atas)/2);
if (tabel1[tengah] == cari)
ketemu = true;
else if (tabel1[tengah] < cari)
bawah = tengah+1;
else
atas = tengah-1;
if (ketemu)
indeksnya = tengah;
else
indeksnya = 0;
}