Algoritma Binary Search Dengan Metode sorting Selection Sort pada Cpp | C++ Tutorial
Berikut kode nya:
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int size;
cout << "INPUTKAN BANYAKNYA DATA = ";
cin >> size;
cout << "--------------------------------------------" << endl;
int* angka = new int[size];
for (int i = 0; i < size; i++)
{
cout << "INPUTKAN DATA KE-[" << i + 1 << "] = ";
cin >> angka[i];
}
cout << "--------------------------------------------" << endl;
cout << "DATA YANG DIINPUTKAN : " << endl;
for (int i = 0; i < size; i++)
{
cout << angka[i] << ' ';
}
cout << endl;
cout << "--------------------------------------------" << endl;
int jmin, temp, u = size - 1;
for (int j = 0; j < size; j++)
{
jmin = 0;
for (int k = 1; k <= u; k++)
{
if (angka[k] < angka[jmin])
{
jmin = k;
}
}
temp = angka[u];
angka[u] = angka[jmin];
angka[jmin] = temp;
u--;
}
cout << "DATA SETELAH DIURUTKAN : " <<
endl; for (int i = 0; i < size; i++)
{
cout << angka[i] << ' ';
}
cout << endl;
cout << "--------------------------------------------" << endl;
cout << "DATA YANG DICARI : "; int cari;
cin >> cari;
cout << "--------------------------------------------" << endl;
// binary search
int indeks_pertama = 0, indeks_terakhir = size - 1, indeks_tengah;
bool ketemu = 0;
while (true)
{
indeks_tengah = (indeks_pertama + indeks_terakhir) / 2;
if (angka[indeks_tengah] == cari)
{
ketemu = 1;
break;
}
else if (angka[indeks_tengah] < cari)
{
indeks_terakhir = indeks_tengah - 1;
}
else if (indeks_pertama > indeks_terakhir)
{
break;
}
else
{
indeks_pertama = indeks_tengah + 1;
}
}
if (ketemu == 1)
{
cout << "DATA " << cari << " YANG DICARI ADA DALAM ARRAY" << endl;
}
else
{
cout << "DATA " << cari << " YANG DICARI TIDAK ADA DALAM ARRAY" << endl;
}
cout << "--------------------------------------------" <<
endl; cout << "BINARY SEARCH SELESAI" << endl; cout <<
"--------------------------------------------" << endl;
_getch();
// Menghapus memory
delete[] angka;
return 0;
}
Comments
Post a Comment