Kezdőoldal » Számítástechnika » Programozás » Miért a Quicksort a legjobb...

Anonym982 kérdése:

Miért a Quicksort a legjobb rendezési módszer?

Figyelt kérdés

#programozás #quicksort #rendezési módszer
2016. okt. 20. 15:21
 1/4 anonim ***** válasza:
55%
Mert nem az.
2016. okt. 20. 15:36
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:
48%

Nem a quicksort a legjobb, már csak azért sem, mert attól is függy hogy mit és milyen elemszémot kell rendezni.

A quicksort csak általánosságban jó, a lusta programozók gyakran ezt választják.

2016. okt. 20. 16:12
Hasznos számodra ez a válasz?
 3/4 2*Sü ***** válasza:
100%

Nos a téma kissé összetett. Sokféle paraméterrel rendelkezik egy rendezési algoritmus:

- Minimálisan hány összehasonlítás szükséges. (Ha az adatsor eleve rendezett volt.)

- Maximálisan hány összehasonlítás szükséges. (Ha pont a legrosszabb az elrendezés az adott algoritmus szempontjából.)

- Átlagosan hány összehasonlítás szükséges.

- Mekkora a memóriaigénye a rendezésnek.

- Milyen hosszú a kód maga.

- Stabil-e a rendezés. (Azaz mondjuk egy 100 elemű adatsor esetén ha mondjuk 5 olyan szomszédos szám van, ahol egy nagyobb elem előz meg egy kisebb elemet, és a rendezést menet közben megszakítod, akkor nő-e a rendezetlen számpárok száma. Ha a rendezetlen számpárok száma a rendezés során nem tud növekedni, akkor stabil rendezésről van szó.)

- Régen mondjuk ha sok adatot kellett rendezni, ami szalagos egységen foglalt helyet, az sem volt lényegtelen szempont, hogy mennyit kell tekerni a szalagot.


Minden rendezési algoritmusnak vannak előnyei és hátrányai. Pl. a quicksort általában jó választás. De nem a legrövidebb kód – az egyik legkisebb kódú algoritmus a Gnome sort –, ami beépített rendszer esetén lehet lényeges kérdés. A memóriafogyasztása átlagosan log(n), ami nem rossz, de pl. a buborékrendezésnek 1 egységnyi a memóriaigénye. Óriási adatsor esetén ez sem elhanyagolható kérdés. A legrosszabb esetben n² összehasonlítás kell, míg pl. a merge sort esetén csak n*log(n). Az legjobb esetben is n*log(n) összehasonlítás kell, míg mondjuk a beszúrásos, vagy buborékrendezésnél csak n. Ráadásul a quicksort nem stabil rendezés, azaz a rendezés megszakítása után lehet, hogy rendezetlenebb állapot áll fenn, mint a rendezés előtt.


Tehát hogy melyik a legjobb algoritmus? Az attól függ, milyen elvárásokat tartunk fontosnak, és mit tartunk lényegtelennek.


Lásd még: [link]

2016. okt. 21. 04:09
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:
Köszönöm a válaszokat!
2016. okt. 22. 13:07

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!