-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy path17.BinarySearchString.cpp
61 lines (61 loc) · 1.7 KB
/
17.BinarySearchString.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
//library algoritma untuk search
#include <algorithm>
using namespace std;
int main(){
cout<<"Masukkan Jumlah Kalimat =";
int jumlah;
string kalimat[100];
cin>>jumlah;
//assign array nya
for(int x=0;x<jumlah;x++){
cout<<"Masukkan Data ke-"<<x+1<<" = ";
cin>>kalimat[x];
}
//output sebelum urut
cout<<"\nData Sebelum Urut = "<<endl;
for(int x=0;x<jumlah;x++){
cout<<x+1<<". "<<kalimat[x]<<endl;
}
//output sesudah urut
cout<<"\ndata Setelah Urut = "<<endl;
sort(kalimat,kalimat+jumlah);
for(int x=0;x<jumlah;x++){
cout<<x+1<<". "<<kalimat[x]<<endl;
}
//search kalimat
cout<<"Cari Kalimat Yang Ingin Anda Cari = ";
string cari;
cin>>cari;
//set status dan cari median
int ditemukan=0, tengah = jumlah/2;
//set kalimat tengah
string kaltengah = kalimat[tengah];
//search ke kanan
if(cari > kaltengah){
for(int x = tengah;x<jumlah;x++){
if(kalimat[x]==cari){
cout<<"Kalimat Anda Ditemukan Pada Index ke-"<<x+1<<endl;
ditemukan = 1;
}
}
}
//jika pas ditengah
else if (cari == kaltengah){
cout<<"Kalimat Ditemukan Pada Index ke-"<<tengah<<endl;
ditemukan=1;
}
//search ke kiri
else{
for(int x=tengah;x<=0;x++){
if(kalimat[x]==cari){
cout<<"Kalimat Anda Ditemukan Pada Index ke-"<<x+1<<endl;
ditemukan=1;
}
}
}
//cek status
if(ditemukan!=1){
cout<<"data Tidak Ditemukan !";
}
}