Algoritma Binary Search Dengan Metode sorting Selection Sort pada Cpp | C++ Tutorial

Binary Search adalah sebuah teknik pencarian data dengan berulang kali membagi separuh dari jumlah data yang dicari sampai sehingga memperkecil lokasi pencarian menjadi satu data. Dengan teknik ini kita akan membuang setengah dari jumlah data. Apabila ditemukan kecocokan data maka program akan mengembalikan output, jika tidak pencarian akan terus berlanjut hingga akhir dari pembagian jumlah data tersebut. Algoritma ini biasanya banyak digunakan untuk mencari di program dengan jumlah data yang banyak

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

Popular posts from this blog

Algoritma Selection Sort Ascending dan Descending pada Cpp/C++ | C++ Tutorial

Algoritma Bubble Sort Pada C++/Cpp | C++ Tutorial