Sortowanie binarne

Sortowanie binarne

Program: przedstawiający sortowanie binarne.

Program wykonuje sortowanie binarne, zlicza ilość obiegów potrzebną do posortowania tablicy.

Kompilator: Turbo Pascal

Galeria:

Program w akcji.

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.