Hogyan lehet rendezni egy tömb emelkedő Forum

Tekintsük a következő típusú tömb rendezési sorrend:
  1. kiválasztunk (SelectionSort) módszer
  2. buborék (buborékrendezés) módszer
  3. egyszerű módszer betétek (Beszúrásos Rendezés)
  4. Eljárás bináris betétek (BinaryInsertionSort)
  5. Schell (ShellSort) módszer
  6. Módszer William Floyd, bináris fák (kupacrendezés)
  7. Neumann módszer, M (NeumanSort)
  8. gyorsrendezés (Gyorsrendezés) módszer
x






Megjegyzés: tömb, kezdődő index születik a fenti rendezési módszer 0 # 33;
1. Először meg kell változtatni a koefficiensek maga az eljárás.

1) rendezés a tömb emelkedő választandó módszer

Ez a legtermészetesebb algoritmus rendelés. Tegyük fel, hogy az elemek a 0. i-1 már megrendelt, majd a megmaradt a i. egy n-1, és megtalálja a legkisebb elem változó helyére az i-edik eleme. És így tovább, amíg a tömb teljesen rendezve.

Az eljárás rendezni a tömb.

A * értékek tömb elemeinek indexek 0-tól N-1

* Az elemek száma N

eljárás SelectionSort (var arr array Real ;. const N. Egész szám);

ha m> Arr [j-1], majd


2) rendezése Növekvő array (buborék módszer)

Az eljárás rendezni a tömb.

A * értékek tömb elemeinek indexek 0-tól N-1

* Az elemek száma N

eljárás buborékrendezés (var Arr tömb Real ;. const N. Egész szám);

i: = Pred (N) downto 1 do

j: = 0 a Pred (i) do

ha Arr [j]> = Arr [j + 1], majd

Hozzászólás szerkesztette: Romtek - 08.10.10, 20:04

Msg. # 2. 09.04.04, 18:21


3) rendezi a tömb emelkedő (módszer egyszerű inszerciók)

Egymás után átvizsgálja a 1 n-1, és minden egyes új elem behelyezve i a megfelelő helyen már a rendezett halmaz egy i-1. egy 1. Ez a hely határozza meg, hogy összehasonlítjuk a i összhangban rendelt elemei a 0. 1-a i.

Az eljárás rendezni a tömb.

A * értékek tömb elemeinek indexek 0-tól N-1

4) rendezi a tömb emelkedő (Módszer bináris inszerciók)

Ez az algoritmus képviseli optimalizált változata az előző, a különbség az, hogy ha keres egy helyet, amely szükséges beillesztése a már rendezett gyűjteménye a 0. a i-1. által meghatározott felező algoritmus (innen a név az algoritmus „bináris inszerció” értendő, mint egy „behelyezés osztjuk ketté”).

Az eljárás rendezni a tömb.







A * értékek tömb elemeinek indexek 0-tól N-1

* Az elemek száma N

eljárás BinaryInsertionSort (var Arr tömb Real ;. N. Egész szám);

míg b<>c do

ha Arr [c-1]> Arr [i-1], majd e: = C

ha Arr [b-1]

Hozzászólás szerkesztette: volvo877 - 29.04.08, 07:30

Msg. # 3. 09.04.04, 19:03


5) válogató tömböt Shell

Az eljárás rendezni a tömb.

A * értékek tömb elemeinek indexek 0-tól N-1

* Az elemek száma N

eljárás ShellSort (var Arr tömb Real ;. N. Egész szám);

ha Arr [j]<=Arr[j+g] then c:=False


6) rendezése Növekvő array (William Floyd módszer, bináris fák)

Az algoritmus a képviselet a tömb, mint egy bináris fa, amelynek különleges tulajdonságait. A számítógép-memória minden mezőelem sorba vannak rendezve, a fa szerkezetének meghatározása a következő: azt feltételezzük, hogy az i-edik eleme az a tömb ( „őse”) két gyermek elemek indexek 2i + 1 és 2i + 2. A fa az általános formában, ha minden eleme a őse sok utódaik.

A tulajdonságok az algoritmus érdemes megjegyezni, hogy ez egy jó stabil sebességet rendelés (sorrendben n * log (n)), függetlenül attól, hogy a tömb működik, és ezért használják olyan esetekben, amikor kell szervezni egy sor garantált rövid idő alatt.

Az eljárás rendezni a tömb.

A * értékek tömb elemeinek indexek 0-tól N-1

* Az elemek száma N

eljárás kupacrendezés (var Arr tömb Real ;. N. Egész szám);

míg t<>1 do

ha Arr [K-1]> = Arr [t-1], majd t: = 1

míg t<>0 do

ha k> i, majd t: = 0

ha Arr [k]> Arr [K-1], majd Inc (k);

ha Arr [t-1]> = Arr [K-1], majd t: = 0

Msg. # 4. 09.04.04, 20:20


7) tömb rendezési Növekvő (módszerével Neumann, M)

Az algoritmus Neumann szekvenálás array (merge rendezési algoritmus) alapján több fúziók már megrendelt csoportok tömb elemeit. Kezdetben az egész tömböt kell tekinteni, mint egy sor megrendelt csoportok egyik eleme minden. Egyesítése szomszédos csoport megkapjuk a megrendelt csoportok, amelyek mindegyike két elemből (kivéve talán az utolsó, amely nem volt pár csoport). Továbbá, a megrendelt csoportok nagyobb lesz ugyanolyan módon, stb

Az algoritmus ad jó teljesítményt a sebesség, összevetve is válogatás egy bináris fa. Az egyetlen hátránya - annak szükségességét, hogy további olyan azonos méretű.

Az eljárás rendezni a tömb.

A * értékek tömb elemeinek indexek 0-tól N-1

* Az elemek száma N

eljárás NeumanSort (var Arr tömb Real ;. N. Egész szám);

Tarr = array [0. pred (maxint div sizeof (valódi))] valódi;

GetMem (Barr, (N - 1) * sizeof (valós));

míg MergeLen

míg a i + MergeLen<=n do

ha n2> n, akkor n2: = N;

while (i1<=n1)or (i2<=n2) do

míg i2<=n2 do

míg i1<=n1 do

ha Arr [i1-1]> Arr [i2-1], majd

míg a i + MergeLen<=n do

ha n2> n, akkor n2: = N;

while (i1<=n1)or (i2<=n2) do

míg i2<=n2 do

míg i1<=n1 do

ha Barr ^ [i1-1]> Barr ^ [i2-1], majd

FreeMem (Barr, (N - 1) * sizeof (valós));


8) rendezése Növekvő array (gyorsrendezés módszer)

eljárás gyorsrendezés (var A: Array szó; L, R: Egész szám);

míg az A [I]

míg az A [J]> P do

Hozzászólás szerkesztette: volvo877 - 18.12.08, 08:49

0 felhasználó olvassa ezt a témát (0 vendég és 0 anonim felhasználó)

[Script Execution time: 0,1236] [17 lekérdezések használt] [generált: 26.07.17, 17:14 GMT]