Forum Coders' city Strona Gwna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UytkownicyUytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj si, by sprawdzi wiadomociZaloguj si, by sprawdzi wiadomoci   ZalogujZaloguj 

Potrzebuj szybkiej odpowiedzi na moje pytanie... Zasady

Algorytm Szybkiego Sortowania



 
Odpowiedz do tematu    Forum Coders' city Strona Gwna -> Algorytmy + inynieria oprogramowania
Zobacz poprzedni temat :: Zobacz nastpny temat  
Autor Wiadomo
Matii
Go





PostWysany: Sob Cze 30, 2018 1:30 pm  OP    Temat postu: Algorytm Szybkiego Sortowania Odpowiedz z cytatem Pisownia

Witajcie

W ramach nabierania w prawy w programowaniu napisaem wasny nowatorski kod - szybkiego sortowania :).
Mam pytanie do was. Czy takie wasne pisanie kodw, algorytmw ktrych w necie jest peno ma znaczenie dla nauki programowania czy to tylko strata czasu ?

Pozdro.

Ps. a o to kod :)
Kod:
program Test;
{ Program testujcy rekurencyjn wersj szybkiego sortowania tablicy }
uses Crt;
const
     nmax = 100; { maksymalny rozmiar tablicy }
type
    tablica = array[1..nmax] of integer;
var
   i: { zmienna pomocnicza }
     integer;
   a: tablica;

procedure Szybkie(var a: tablica; lewy,prawy: integer);
{ Rekurencyjna procedura szybkiego sortowania }
{ lewy - lewy kraniec sortowanego wycinka,
  prawy - prawy kraniec sortowanego wycinka }
var
   i, { zmienna przebiegajca lew cz tablicy }
   j, { zmienna przebiegajca praw cz tablicy }
   x, { element rodkowy }
   pom, { zmienna pomocnicza do zamiany elementw }
   p: integer;
begin
     i := lewy;
     j := prawy;

     { wybranie rodkowego elementu }
     x := (lewy + prawy) div 2;

     while i < j  do
          begin
               while a[i] < a[x] do
                    inc(i); { i := i + 1 }


               while a[j] > a[x] do
                    dec(j); { j := j - 1 }

               if i < j then
                 if i < x then
                   if j > x then
                     begin
                          pom := a[i];
                          a[i] := a[j];
                          a[j] := pom;
                          inc(i);
                          dec(j)
                     end
                   else
                       begin
                            pom := a[i];

                            for p := i to x - 1 do
                               a[p] := a[p + 1];
                            a[x] := pom;

                            dec(x)
                       end
                 else
                     begin
                          pom := a[j];

                          for p := j downto x + 1 do
                             a[p] := a[p - 1];
                          a[x] := pom;

                          inc(x);

                          if j - 1 = i then
                            dec(j)
                     end;
          end; { a przejrzelimy lew i praw cz tablicy }

     { wywoanie procedury dla lewej czci }
     if lewy < x then Szybkie(a,lewy,x - 1);

     { wywoanie procedury dla prawej czci }
     if prawy > x then Szybkie(a,x + 1,prawy)
end;

begin
     randomize;
     for i := 1 to 100 do
        a[i] := random(100);

     ClrScr;

     writeln('Losowe elementy tablicy:');
     for i := 1 to 100 do
        write(a[i]:3);

     Szybkie(a,1,100);

     writeln;
     writeln('Tablica posortowana:');
     for i := 1 to 100 do
        write(a[i]:3)
end.
Powrt do gry
hurgadion



Doczy: 06 Kwi 2011
Posty: 853
Skd: Web :)

PostWysany: Sob Cze 30, 2018 1:42 pm      Temat postu: Odpowiedz z cytatem Pisownia

Hej, podchodzisz do zagadnienia w sposb szkolny, wic najprawdopodobniej jeste na studiach, lub w okolicy... ;) aby si nauczy programowa najlepiej pisa kody... dla praktycznych zagadnie... ^^ co do sortowania, to s to raczej klasyczne rzeczy... wic mi np. szkoda czasu na tego typu zagadnienia, ale to zaley te na jakim etapie nauki jeste... ja naumiaem si metody przez scalanie (rekurencyjna, proponuj si przyjrze), i z tego co pamitam ze rednim czasem nlogn... Co do Twojego przykadu, to zamiast 100 elementw we 100k elementw... odpal kod, odpal inne kody z sortowaniem, i wycignij wnioski... a co do nauki dobrego programowania, to proponuj SPOJ, polski SPOJ, troch czasu tam straciem, i moe jeszcze tam wrc... sporo zadanek czeka, nierozwizanych... ^^
_________________
miasto nauki praktycznej
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo Odwied stron autora Numer GG
Wywietl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Gwna -> Algorytmy + inynieria oprogramowania Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Moesz pisa nowe tematy
Moesz odpowiada w tematach
Nie moesz zmienia swoich postw
Nie moesz usuwa swoich postw
Nie moesz gosowa w ankietach
Moesz dodawa zaczniki na tym forum
Moesz pobiera pliki z tego forum




Debug: strone wygenerowano w 0.13669 sekund, zapytan = 11
contact

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