Membuat program Array Biner
pada aray biner, berbeda dengan array linear yg terdapat pada judul blog sebelumnya. Yang mana, pada array biner ini, pada saat kita ingin mencari data, dia bakalan mengurutkan data itu dahulu, baru kita dapat mencari data yg kita mau terdapat pada indeks ke berapa.
langsung saja ke program nya ya.....
#include <iostream>
using namespace std;
int pencarianbiner(int arr[],int kunci,int low, int high){
bool ketemu;
int middle;
ketemu=false;
while(low<=high && !ketemu){
middle=(low+high)/2;
if(kunci == arr[middle]){
ketemu=true;
}
else if(kunci<arr[middle]){
high=middle-1;
}
else{
low=middle+1;
}
}
if(ketemu){
return middle;
}
else {
return -1;
}
}
void bubblesort(int l[], int n){
int k=n;
int temp;
for(k-1;k>=1;k--){
for(int i =0;i<=k-2;i++){
if (l[i]>l[i+1]){
temp=l[i];
l[i]=l[i+1];
l[i+1]=temp;
}
}
}
}
void tampilsebelum(int i[],int n){
cout<<"isi Array Sebelum diurutkan = ";
for(int a=0;a<n;a++){
cout<<i[a]<<", ";
}
cout<<endl;
}
void tampilsesudah(int i[],int n){
cout<<"isi Array Sesudah diurutkan = ";
for(int a=0;a<n;a++){
cout<<i[a]<<", ";
}
cout<<endl;
}
main(){
int arr[]={4,45,6,7},cari;
tampilsebelum(arr,4);
bubblesort(arr,4);
tampilsesudah(arr,4);
cout<<"Masukan Data yang ingin dicari = ";cin>>cari;
int indexawal=0;
int indexakhir=3;
int hasilpencarian;
hasilpencarian=pencarianbiner(arr,cari,indexawal,indexakhir);
if(hasilpencarian==-1){
cout<<"Angka Yang Anda Cari Tidak Ketemu"<<endl;
}
else {
cout<<"Angka yang anda cari ketemu di index ke = "<<hasilpencarian+1<<endl;
}
}
langsung saja ke program nya ya.....
#include <iostream>
using namespace std;
int pencarianbiner(int arr[],int kunci,int low, int high){
bool ketemu;
int middle;
ketemu=false;
while(low<=high && !ketemu){
middle=(low+high)/2;
if(kunci == arr[middle]){
ketemu=true;
}
else if(kunci<arr[middle]){
high=middle-1;
}
else{
low=middle+1;
}
}
if(ketemu){
return middle;
}
else {
return -1;
}
}
void bubblesort(int l[], int n){
int k=n;
int temp;
for(k-1;k>=1;k--){
for(int i =0;i<=k-2;i++){
if (l[i]>l[i+1]){
temp=l[i];
l[i]=l[i+1];
l[i+1]=temp;
}
}
}
}
void tampilsebelum(int i[],int n){
cout<<"isi Array Sebelum diurutkan = ";
for(int a=0;a<n;a++){
cout<<i[a]<<", ";
}
cout<<endl;
}
void tampilsesudah(int i[],int n){
cout<<"isi Array Sesudah diurutkan = ";
for(int a=0;a<n;a++){
cout<<i[a]<<", ";
}
cout<<endl;
}
main(){
int arr[]={4,45,6,7},cari;
tampilsebelum(arr,4);
bubblesort(arr,4);
tampilsesudah(arr,4);
cout<<"Masukan Data yang ingin dicari = ";cin>>cari;
int indexawal=0;
int indexakhir=3;
int hasilpencarian;
hasilpencarian=pencarianbiner(arr,cari,indexawal,indexakhir);
if(hasilpencarian==-1){
cout<<"Angka Yang Anda Cari Tidak Ketemu"<<endl;
}
else {
cout<<"Angka yang anda cari ketemu di index ke = "<<hasilpencarian+1<<endl;
}
}