Program: przedstawiający sortowanie binarne.
Program wykonuje sortowanie binarne, zlicza ilość obiegów potrzebną do posortowania tablicy.
Kompilator: Turbo Pascal
Kod programu:
program sortbin;
uses crt;
const N = 100;
var z:array[0..N - 1 ] of integer;
i, ip ,ik, isr,k,L,p :integer;
begin
clrscr;
randomize;
z[0]:=random(5);
for i:=1 to N-1 do z[i]:=z[i-1]+random(5);
k:=z[0]+random(z[N-1]-z[0]+1);
L:=0; p:=-1; ip:=0; ik:=N-1;
while ip<=ik do
begin
inc(L);
isr:=(ip+ik) shr 1;
if z[isr]=k then
begin
p:=isr;break;
end
else if k<z[isr] then
ik:=isr -1
else
ip:=isr+1;
end;
write(k,' : ');
if p>=0 then write(p) else write('Brak!');
writeln(' : obiegi = ',L);
writeln;
for I:=0 to N-1 do
begin
write(z[i]:3);
if p=i then write('<') else write(' ');
end;
writeln;
writeln;
readln;
end. Słowniczek pojęć:
Jest algorytmem opierającym się na metodzie dziel i zwyciężaj, który w czasie logarytmicznym stwierdza, czy szukany element znajduje się w uporządkowanej tablicy i jeśli się znajduje, podaje jego indeks. Np. jeśli tablica zawiera milion elementów, wyszukiwanie binarne musi sprawdzić maksymalnie 20 elementów w celu znalezienia żądanej wartości. Dla porównania wyszukiwanie liniowe wymaga w najgorszym przypadku przejrzenia wszystkich elementów tablicy.