Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

Algorytm wyszukiwania binarnego



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Algorytmy + inżynieria oprogramowania
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Matii
Gość





PostWysłany: Pon Gru 17, 2018 8:21 am  OP    Temat postu: Algorytm wyszukiwania binarnego Odpowiedz z cytatem Pisownia

Witajcie
Napisałem funkcje z algorytmem wyszukiwania binarnego uwzględniającą powtórzenia liczb.
Pozdro



WYSZKBIN.PAS
 Opis:

Pobierz
 Nazwa pliku:  WYSZKBIN.PAS
 Wielkość pliku:  1.57 KB
 Pobierano:  3 raz(y)

Powrót do góry
Matii
Gość





PostWysłany: Wto Gru 18, 2018 3:01 pm      Temat postu: kod Odpowiedz z cytatem Pisownia

Kod dla osób nieposiadających kompilatora turbo pascala 7.0
Kod:
program Wyszukiwanie_binarne;
uses Crt;
const
     n = 10;
type
    tablica = array[1..n] of integer;
var
   tab: tablica;
   j,liczba,srodek,min,max: integer;
function WB(t: tablica; p,k,szukana_liczba: integer;pi_pl,dr_pl: boolean): boolean;
var
   i: integer;
   znaleziono: boolean;
begin
     znaleziono := false;
     repeat
           i := (p + k) div 2;
           if t[i] = szukana_liczba then
             znaleziono := true
           else
               if t[i] < szukana_liczba then
                 p := i + 1
               else
                   k := i - 1
     until znaleziono or (k < p);

     if znaleziono then
       begin
            writeln('Znaleziona liczba znajduje si© na miejscu: ',i);
            WB := znaleziono; if (max = 0) and (min = n) then srodek := i;

            if min > i then min := i;

            if pi_pl then
              if 1 < i then znaleziono := WB(t,1,i-1,szukana_liczba,pi_pl,dr_pl);

            if i >= srodek then begin dr_pl := true; pi_pl := false end;

            if max < i then max := i;

            if dr_pl then
              if i < n then znaleziono := WB(t,i+1,n,szukana_liczba,pi_pl,dr_pl);

       end
end;
begin
     for j := 1 to n do
        begin
             write('Liczba nr: ',j,' ');
             readln(tab[j])
        end;

     for j := 1 to n do
        write(tab[j]:4);

     readln(liczba);


     srodek := 0; min := n; max := 0;

     j := 1;

     WB(tab,j,n,liczba,true,false);

     writeln;
     writeln;
     writeln(srodek:4,min:4,max:4)
end.
Powrót do góry
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Algorytmy + inżynieria oprogramowania Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.13900 sekund, zapytan = 13
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |