Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

[Pascal/Delphi] Sortowanie quicksort oraz scalanie.

#1
[Pascal/Delphi] Sortowanie quicksort oraz scalanie.
Witam. Otóż mam problem z ww.  algorytmami. Program się kompiluje, lecz w obydwóch przypadkach nic nie sortuje. Może mnie ktoś nakierować co jest nie tak?

Sortowanie qs:

Kod:
procedure qs (t11:tabi;l:integer;r:integer);
var
i,j,k,wyb:integer;
w:integer;
begin

clrscr;
writeln ('Ktora tablice chcesz posortowac?');
writeln;
writeln ('1. Liczb calkowitych');
writeln ('2. Liczb rzeczywistych');

w:=t11[(l + r) div 2];
i:=l;
j:=r;

while (i<j) do begin
 while (t11[i]<w) do
 i:=i+1;

   while (t11[j]>w) do
   j:=j-1;

    if (i<=j) then begin
    k:=t11[i];
    t11[i]:=t11[j];
    t11[j]:=k;
    inc (i);
    dec (j);
    end;

end;

if( j>l ) then qs( t11 ,l, j);
if( i<r ) then qs( t11,i, r );


for i:=0 to length (t11)-1 do begin
write (' ',t11[i],' ');
end;
end;      
Scalanie:
Kod:
procedure scalanie (t11,t111:tabi;  t22,t222:tabr;  ip,ik:integer);
var
i_s,i1,i2,wyb,i:integer;

begin


clrscr;
writeln ('Ktora tablice chcesz posortowac?');
writeln;
writeln ('1. Liczb calkowitych');
writeln ('2. Liczb rzeczywistych');
readln (wyb);

if (wyb)=1 then begin
i_s:=(ip+ik+1)div 2;

if i_s-ip>1 then scalanie (t11,t111,t22,t222,ip,i_s-1);
if ik-i_s>0 then scalanie (t11,t111,t22,t222,i_s,ik);
i1:=ip;
i2:=i_s;

       for i:=ip to ik do begin
           if (i1=i_s) or ((i2<=ik)  and (t11[i1]>t111[i2])) then begin
           t11[i]:=t111[i2]; inc (i2);
           end else begin
               t11[i]:=t111[i1];
               inc (i1);
                        end;
                                end;

for i:=ip to ik do begin
t11[i]:=t111[i];
end;
                       end;


for i:=0 to length (t11)-1 do begin
write (' ',t11[i],' ');
end;

end;
 System operacyjny: windows_seven Przeglądarka: chrome
#2
RE: [Pascal/Delphi] Sortowanie quicksort oraz scalanie.
Witam, w drugim wywołaniu funkcji qs powinieneś mieć i+1 zamiast i.
 System operacyjny: linux_ubuntu Przeglądarka: firefox
#3
RE: [Pascal/Delphi] Sortowanie quicksort oraz scalanie.
Jeżeli chodzi o qs to problem już wczoraj rozwiązałem.Nadal jednak nie mogę sobie poradzić ze scalaniem...

Edit:

Zauważyłem też, że po wykonaniu sortowania (w procedurze) mój parametr, który jest tablicą (zadeklarowana bez dopisku var) zostaje przekazany do programu głównego. Dlaczego procedura operuje na "głównej" tablicy, a nie na kopii?
 System operacyjny: windows_seven Przeglądarka: chrome
#4
RE: [Pascal/Delphi] Sortowanie quicksort oraz scalanie.
Zapewne w Pascalu tablica też jest przekazywana przez adres. Ciężko trochę zrozumieć Twój kod.
Na końcu masz kod źródłowy.
 System operacyjny: linux_ubuntu Przeglądarka: firefox
Programy: Polecane / Nowe / Inne




Podobne wątki ([Pascal/Delphi] Sortowanie quicksort oraz scalanie.)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  [C++] Scalanie dwóch posortowanych tablic soul1648 5 8802 16.03.2017, 20:09
Ostatni post: Szachista
  [C++] Sortowanie bąbelkowe - problem z rozwiązaniem zadania bartek164 8 7352 01.12.2016, 11:26
Ostatni post: Szachista
  dev pascal, problem z funkcją kwadratową Sentinel24 4 8031 21.10.2016, 11:20
Ostatni post: koneton

Skocz do:


Wybrane wątki ([Pascal/Delphi] Sortowanie quicksort oraz scalanie.)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  .bat nie kompresuje plików GIENTY 3 9545 06.09.2018 07:20
Ostatni post: broda99
  problem z programem .bat wiktrom12 4 10729 30.08.2018 08:25
Ostatni post: wiktrom12
  Silnik do gier ZigglerGames 1 9384 23.08.2018 09:03
Ostatni post: Szachista
  Chciałbym zrobić prosty plik exe z jedną funkcją densour 4 10125 09.08.2018 16:24
Ostatni post: Ajgor
  Który język wybrać do stworzenia aplikacji synchronizujące pliki z urządzeniem mobiln Elemental 2 2539 18.07.2018 12:05
Ostatni post: Ajgor
  Pomysł napisania programu ROM FireBytes 3 10706 28.06.2018 16:56
Ostatni post: FireBytes
  [VBA] Tworzenie nowego arkusza z danymi z TextBox'a Pioro 4 11124 19.06.2018 23:24
Ostatni post: broda99
  Potwierdzenie na maila po wysłaniu pliku coci 0 10205 13.06.2018 20:37
Ostatni post: coci
  Pieczętowanie Archiwum Jar - Po co? wanhelsing 3 10799 19.05.2018 20:55
Ostatni post: koneton
  Wyszukiwarka w spawnerze nie reaguje na polskie znaki kazik666 0 10570 16.05.2018 12:04
Ostatni post: kazik666
  BASH symulator silnika dawswi1 3 10725 13.05.2018 10:43
Ostatni post: Szachista
  Autohotkey automatyczny zapis TheProgson 0 10295 07.05.2018 21:27
Ostatni post: TheProgson
  VBA Pobieranie wybranych plików z danymi julietta03 1 10620 04.05.2018 08:25
Ostatni post: broda99
  [VBA] Przenoszenie danych między formularzami Pioro 4 11074 23.04.2018 11:48
Ostatni post: broda99
  Skrypt, który szuka i zamienia armen10 2 10553 23.04.2018 10:04
Ostatni post: armen10