Kezdőoldal » Számítástechnika » Programozás » Melyik a leggyorsabb rendezési...

Melyik a leggyorsabb rendezési és keresési módszer c++?

Figyelt kérdés

Pl sok elem közül egy elem megkeresése, vagy bizonyos jellemzők alapján elemek megkeresése.


Rendezésnél meg bizonyos jellemzők alapján sorba rendezés.


Írtam már pár kódot, ami egy tömb elemeit sorba rendezi, de az nem biztos, hogy a leggyorsabb kód.


Főleg módszer (rendezési elv) alapján érdekel, nem maga a kód. Pl összehasonlítja az egymás mellett lévőket, és a nagyobbat előre helyezi, meg ehhez hasonlók.


Hasonló sebességet produkálhat, mintha Pythonban írták volna a kódot, vagy annyira gyors nem lesz? Tudom, hogy a C++-szal iszonyat gyorsan le tud futni, de a Python meg kifejezetten erre specializálódott.


2020. okt. 26. 17:37
1 2
 1/17 anonim ***** válasza:
66%
Ez függ rengeteg dologtól.
2020. okt. 26. 17:45
Hasznos számodra ez a válasz?
 2/17 anonim ***** válasza:
41%

Rendezésre azt hiszem a quicksort jó eredményeket produkál.

Keresésnél: hááát, igazából tömböt lineáris kereséssel lehet csak végignézni, ha rendezve van, esetleg lehet próbálkozni felezéses módszerrel az indexekre, de erre nincs optimális megoldás minden esetre, ez egyedi.


Python vs c++ kérdésedre pedig: mivel a python interpretált nyelv, ezért tudomásom szerint minden esetben lassabb mint a c++, ami teljesen gépi kóddá fordul. Persze a különbség lehet hogy csak pár mikroszekundum, de mindenképp csak a c++ tud nyerni.

2020. okt. 26. 18:46
Hasznos számodra ez a válasz?
 3/17 anonim ***** válasza:
100%
Több tucat hatékony rendezési eljárás van. Mindegyik másban erős, és más körülmények között javasolt.
2020. okt. 26. 20:35
Hasznos számodra ez a válasz?
 4/17 anonim ***** válasza:
63%

Rendezésekhez, áttekintőnek:

https://www.youtube.com/watch?v=BeoCbJPuvSE


Kereséshez rendezett tömbökhöz írták a felezéses, logaritmikus módszert, de igazából nem csak kétutas lehet, ez feladattól függően alakítható. Pl:

[link]

(Indexelési és indexfájl-karbantartási infókat is kereshetsz.)

Egy klasszikus:

[link]

2020. okt. 26. 22:13
Hasznos számodra ez a válasz?
 5/17 anonim ***** válasza:
27%
(n * log n) nél hatékonyabb nem létezik. Merge sorting teljesen jó. Azt használhatod nyugodtan.
2020. okt. 26. 22:56
Hasznos számodra ez a válasz?
 6/17 anonim ***** válasza:
47%

Ez nagyon lame kérdés.

A keresés függ az elemszámtól, az elemek jellemzőitől, a struktúrától, amiben az elemek el vannak tárolva, stb.

Ezért is van alap kb. 10 féle kereső algoritmus és nem egy féle, a legjobb, mert nincs legjobb, csak legalkalmasabb van, egy adott helyzetben.


A python vs C++ sebességbeli összehasonlításon még hangosan fel is nevettem. A C++ a pythonra bármilyen helyzetben, feladattól totál függetlenül, köröket ráver.

2020. okt. 27. 02:03
Hasznos számodra ez a válasz?
 7/17 anonim ***** válasza:
83%
#5 counting sort, radix sort, bucket sort stb. mind jobb nlogn-nel. Max osszehasonlitason alapulo algoritmusbol nincs jobb.
2020. okt. 27. 08:36
Hasznos számodra ez a válasz?
 8/17 anonim ***** válasza:
Igen, arra értettem :]
2020. okt. 27. 11:38
Hasznos számodra ez a válasz?
 9/17 anonim ***** válasza:

1, 23, 4, 245, 43, 2


Az "1"-et szeretnénk megtalálni. Melyik algoritmus a leggyorsabb? Hát nyilván az, amelyik elölről kezdi el keresni, hiszen akkor rögtön megtalálja.


Az "2"-őt szeretnénk megtalálni. Melyik algoritmus a leggyorsabb? Hát nyilván az, amelyik hátulról kezdi el keresni, hiszen akkor rögtön megtalálja.


Kapiskálod már?


Egyébként a rendezésekre vannak tételek, ezeket érdemes megtanulni és a kívánalmaknak megfelelőt használni:

[link]

2020. okt. 27. 15:13
Hasznos számodra ez a válasz?
 10/17 A kérdező kommentje:
Úgy tudom Pythonban nagyon gyors keresőalgoritmust lehet készíteni, plusz gépi tanuláshoz is jó, stb. A Google-t is abban írták, pont a gyorsasága miatt.
2020. okt. 27. 15:36
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!