program binSearch;
uses crt;
var i,j,n,a,b,temp: integer;
k: integer;
ketemu: boolean;
x: word;
bil: array [1..100] of integer;
begin
clrscr;
write('Masukkan banyak bilangan yang ingin diurutkan : ');
readln(n);
if n < 2 then
writeln('Input salah !! Input harus lebih dari satu !!');
for i := 1 to n do
begin
write('Masukkan bilangan ke-',i,' : ');
readln(bil[i]);
end;
for i := 1 to n do
begin
for a:=1 to n-1 do
begin
b:=a+1;
if bil[a] > bil[b] then
begin
temp:=bil[a];
bil[a]:=bil[b];
bil[b]:=temp;
end;
end;
end;
writeln;
write('Masukan Data yang dicari : ');
readln(x);
i:=1;
j:=n;
ketemu:=false;
while (ketemu=false) and (i<=j) do
begin
k:=(i+j) div 2;
if k=x then
begin
ketemu:=true;
end else if k>x then
begin
i:=k+1;
end else
begin
j:=k-1;
end;
end;
if ketemu=true then
begin
writeln('Data ditemukan! pada indeks ke-',i);
end else
begin
writeln('Data tidak ditemukan!');
end;
readln;
end.
uses crt;
var i,j,n,a,b,temp: integer;
k: integer;
ketemu: boolean;
x: word;
bil: array [1..100] of integer;
begin
clrscr;
write('Masukkan banyak bilangan yang ingin diurutkan : ');
readln(n);
if n < 2 then
writeln('Input salah !! Input harus lebih dari satu !!');
for i := 1 to n do
begin
write('Masukkan bilangan ke-',i,' : ');
readln(bil[i]);
end;
for i := 1 to n do
begin
for a:=1 to n-1 do
begin
b:=a+1;
if bil[a] > bil[b] then
begin
temp:=bil[a];
bil[a]:=bil[b];
bil[b]:=temp;
end;
end;
end;
writeln;
write('Masukan Data yang dicari : ');
readln(x);
i:=1;
j:=n;
ketemu:=false;
while (ketemu=false) and (i<=j) do
begin
k:=(i+j) div 2;
if k=x then
begin
ketemu:=true;
end else if k>x then
begin
i:=k+1;
end else
begin
j:=k-1;
end;
end;
if ketemu=true then
begin
writeln('Data ditemukan! pada indeks ke-',i);
end else
begin
writeln('Data tidak ditemukan!');
end;
readln;
end.
0 comments:
Posting Komentar