![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 251 Pomógł: 13 Dołączył: 15.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
witam
nie wiem gdzie to wstawić więc bedzie tu ( jak coś można prznieść ) a teraz do rzeczy mam poniższy programik który z założeni apowinien sortowac tablice przy monocy sortowania ze scalaniem działa prawie dobrze tylko jako pierwszy element tablicy jest zawsze ten sam ( przed i po sotowaniu ) a jako drugi występuje 0 ( zero ) a od trzeciego elementu tablica jest już dobrze posortowana co w min jest nie tak bo ja już nie mam pojecia Kod program sortowanie; uses crt; var tablica:array[1..100] of integer; temp,i,j,k,n : integer; Procedure Scalanie(Var a : array of integer; start, stop : Integer); Var i, i1, i2, sr : Integer; tmp : array[1..100] of integer; Begin For i:=start To stop Do tmp[i]:=a[i]; sr:=(start+stop) Div 2; i:=start; i1:=start; i2:=sr+1; While (i1<=sr) And (i2<=stop) Do Begin If tmp[i1]<tmp[i2] Then Begin a[i]:=tmp[i1]; i1:=i1+1; End Else Begin a[i]:=tmp[i2]; i2:=i2+1; End; i:=i+1; End; If i1>sr Then While i2<=stop Do Begin a[i]:=tmp[i2]; i2:=i2+1; i:=i+1; End Else While i1<=sr Do Begin a[i]:=tmp[i1]; i1:=i1+1; i:=i+1; End; End; Procedure Sort(Var a : array of integer; start, stop : Integer); Begin If start<stop Then Begin Sort(a, start, (start+stop) Div 2); Sort(a, ((start+stop) Div 2)+1, stop); Scalanie(a, start, stop); End; End; begin n := 100; clrscr; randomize; For i:=1 To 100 Do tablica[i] := random(30000); For i:=1 To 100 Do begin write(tablica[i]:7); if ((i mod 8) = 0) then writeln; end; Sort(tablica,1,n); writeln; writeln; For i:=1 To 100 Do begin write(tablica[i]:7); if ((i mod 8) = 0) then writeln; end; readkey; end. jak ktoś kto zna pascala rzuci okiem i pokaże co robie źle będe wdzięczny P.S. może zna ktos jakiś prosty sposób na zmieżenie czasu wykonania tego sortowania z góry dzieki za odpowiedzi -------------------- Everything should be made as simple as possible, but not simpler. - A.Eainstein
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 00:53 |