Kezdőoldal » Számítástechnika » Programozás » Milyen rendezéseket szoktatok...

Milyen rendezéseket szoktatok használni?

Figyelt kérdés
Én a buborékrendezést, de azt mondják nem jó, mert erőforráspazarló, nem optimális..stb DE könnyű lekódolni. A gyakorlatban valóban nem szokás használni?
2016. jan. 27. 17:27
1 2
 1/19 anonim ***** válasza:
62%

Attól függ, hogy mit kell rendezni.

A quick sort az általános, de adott esetben lehet az a leglassabb is, ha olyanok a bemenő adatok.

A buborék egyáltalán nem erőforrás pazarló. Már ha ilyet lehet egyáltalán mondani manapság egy sort rutinra.

2016. jan. 27. 17:43
Hasznos számodra ez a válasz?
 2/19 anonim ***** válasza:
73%
Nem szokás rendezést implementálni, megtették már ezren.
2016. jan. 27. 18:36
Hasznos számodra ez a válasz?
 3/19 anonim ***** válasza:
21%

#2: Felétek.. :o)


Kérdező: El ne hidd amit a 2. ír.

2016. jan. 27. 18:52
Hasznos számodra ez a válasz?
 4/19 anonim ***** válasza:
A buborékrendezés nagy elemszám esetén pazarló. Egyébként feladatfüggő, hogy mi kell, de valóban nem túl gyakori, hogy egy rendezést kellene implementálni. Hiszen ott vannak a kész megoldások, amik a legtöbb esetben optimálisabb futási idővel rendelkeznek.
2016. jan. 27. 19:01
Hasznos számodra ez a válasz?
 5/19 A kérdező kommentje:

A "kész megoldáson" a qsort() függvényt értitek?

______________________

És ebben a kódban a compare függvény mit csinál??


#include <stdio.h> /* printf */

#include <stdlib.h> /* qsort */


int values[] = { 40, 10, 100, 90, 20, 25 };


int compare (const void * a, const void * b)

{

return ( *(int*)a - *(int*)b );

}


int main ()

{

int n;

qsort (values, 6, sizeof(int), compare);

for (n=0; n<6; n++)

printf ("%d ",values[n]);

return 0;

}

2016. jan. 27. 19:11
 6/19 anonim ***** válasza:
32%

Ajánlott előre ismerni, hogy milyen adattartalmat kell rendezni. Ez a feltétel szerencsére az esetek nagyobb részében megvalósul. Ha ismeretlen de igen nagy az adattömeg, akkor lehet optimalizációs vizsgálatokat végezni, mondjuk egy másfél milliós elemszámból 6-10 helyen, mondjuk 200-as mintákat venni és a tartalmukat elemezni. Ennek ismeretében lehet nekiereszteni az egésznek a megfelelő sort rutint a megírt, optimalizált, mondjuk három féléből.


Azt is jó tudni, hogy nem csak növekvő, csökkenő sorrend létezik, hanem lehet sortolni ABC rendbe, lehet adott feltételek teljesülése esetén (pl. ár, lokáció, súly, tömeg, stb.) és lehet olyan is, amikor az egész adattömegből csak egy részt szeretnénk hasznosítani, feldolgozni vagy megismerni. Pl. Vatera, teljes 2-3 ezres lista helyett csak azon cikkekre vagyunk kiváncsiak, amelyek ára 20 és 25 ezer között van.


A buborékrendezés egyébként nem, hogy nem erőforrásigényes, de kifejezetten takarékos, már ha itt erőforráson a memóriát értjük, mert általában ez szokott probléma lenni, a processzorigény az azért gyakran másodlagos. Persze ez esetben nagy adattömegekről van szó, nem néhány százas, ezres elemszámról. Ugyanakkor, egy szervernél, sok egyidejű lekérés esetén ilyenek is terhelhetik - a kivánt mérték fölött - a processzort.

2016. jan. 27. 19:33
Hasznos számodra ez a válasz?
 7/19 anonim ***** válasza:
67%

#2-esnek van igaza, sehol nem találsz rendezést lekódolva, külön lib-ek vannak már vagy 20 éve minden létező variációra, az összes rendezést rég implementálták nem kezdő programozók. Maximális időpazarlás foglalkozni vele, egy magas szintű nyelv eleve tartalmaz jó pár rutint, azt kell használni és kész, vagy az adatbázisból eleve rendezetten kell lekérdezni az adatokat, ahol már szintén rég implementálták a rendezést. Semmi értelme időt elcseszni ilyesmire, hogy a végén 0.001 ezred másodperccel gyorsabb legyen a kód, ez sehol sem szempont. Programozás-történelmi okokból még tanítgatják, mint a lyukkártyát meg az ENIAC-ot, de gyakorlatban nem kell használni, felesleges.


Az viszont fontos, hogy az adott nyelv tulajdonságaival és eszközeivel a lehető legjobban tisztában legyél, nem gondolkodhatsz pl.: "C-stílusban" egy Python nyelven írt programban, vagy C++-ban ne írj úgy mintha Java-ban programoznál. A rugalmasság nagyon fontos, különben nem lehet hatékony programot írni. Ez jobban számít,mint hogy egy napig mintavételezel meg elemezgetsz egy sima sortoláshoz, nyilván a késztermék minősége nem ezen fog múlni.

2016. jan. 27. 20:13
Hasznos számodra ez a válasz?
 8/19 anonim ***** válasza:

A "compare" egy olyan fuggveny, ami megmondja, hogy kell elrendezni a szamokat. Ket elem kozul melyik a kisebb; melyik keruljon a masik ele.


Ha szamokat kell osszehasonlitani, akkor ez nyilvan trivialis. Az mar erdekesebb lesz, ha pl valamilyen strukturakat akarsz elrendezni, ahol kulon szabalyaid vannak, hogy mi szerint rendezze.

2016. jan. 27. 20:51
Hasznos számodra ez a válasz?
 9/19 anonim ***** válasza:
32%

Itt egy progi. Ez vizuálisan bemutatja a leggyakoribb rendező algoritmusok működési módját.


[link]


Kiderül belőle az is, hogy miért nincs igaza a 7-es válaszolónak. Sok egyéb miatt sincs igaza, de nincs kedvem gépelni, meg flame-et sem akarok gerjeszteni.

2016. jan. 27. 21:10
Hasznos számodra ez a válasz?
 10/19 anonim ***** válasza:

Robinka ne vergődj már.

Csak habzik a szád, de érveid nincsenek.

2016. jan. 27. 21:35
Hasznos számodra ez a válasz?
1 2

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!