A buborékrendezés előnyei és hátrányai
Azok a programozók, akik a számítógépes és webes fejlesztésről a mobileszközök vagy beágyazott rendszerek kódolására váltanak, több időt töltenek saját adatstruktúráik és algoritmusaik kiválasztásával és kódolásával. A kevesebb memória és a korlátozott adattárolás miatt nincs hely az előre elkészített könyvtáraknak vagy keretrendszereknek. Tehát azoknak, akiknek saját rendezési rutinjukat kell megírniuk, íme néhány szempont az alacsony buborékos rendezés kiválasztásához.
Háttér
A buborékos rendezés egy egyszerű algoritmus, amely a memóriában lévő elemek listáját rendezi. Adott egy tömb, a kód ismételten összehasonlítja minden pár szomszédos elemet, és felcseréli őket, ha nincsenek rendben. A folyamat addig ismétlődik, amíg nem történik több csere. Ha meg lehetne tekinteni a tömböt, miközben a rendezés folyamatban van, az alacsony értékek felfelé "buborékolnának", míg a nagy értékek lefelé süllyednének. Íme a vonatkozó kód a Visual Basic 2010-ben:
Míg swap =igaz csere =hamis For i =0 - tbl.length - 2 Ha tbl(i)> tbl(i + 1) Akkor tmp =tbl(i) tbl(i) =tbl(i + 1) tbl(i + 1) =tmp swap =True End If Next End While
Mikor válasszuk a buborékos rendezést
Ennek az algoritmusnak számos előnye van. Egyszerűen írható, könnyen érthető, és csak néhány sornyi kódot vesz igénybe. Az adatok a helyükön vannak rendezve, így kevés a memória, és a rendezés után az adatok a memóriában vannak, és készen állnak a feldolgozásra. A fő hátrány a válogatáshoz szükséges idő. Az átlagos idő szinte exponenciálisan növekszik a táblázatelemek számának növekedésével. A tételek tízszeresének rendezése csaknem százszor annyi ideig tart.
Egyéb tömbrendezések
A rendezési algoritmusok összetettségükben, sebességükben és többletköltségükben különböznek. A buborékos rendezés a legkevésbé bonyolult, de egyben az egyik leglassabb is. Más tömb alapú rendezések, például a beillesztési rendezés és a csererendezés egy kicsit gyorsabbak, de több kódot igényelnek (lásd az alábbi hivatkozásokat). A tömb alapú rendezések fő előnye, hogy a legkevesebb kódot használják, és a legkevesebb munkamemóriát foglalják el. Fontolja meg ezeket a rendezéseket néhány száznál kevesebb elemet tartalmazó egyszerű tömbök esetében.
Összetett rendezési algoritmusok
A nagyobb adatkészletek bonyolultabb kódot és több memóriát igényelnek. A gyors rendezés és a kupac rendezés egyaránt felosztja és másolja az adatkészleteket az összehasonlítások számának optimalizálása érdekében. A gyors rendezés folyamatosan felosztja a listát, majd rendezett sorrendben összeállítja. A halom rendezés átmásolja az adatokat egy fastruktúrába, majd bejárja a fát, hogy az adatokat visszamásolja a sorrendbe. Mindkettő gyors és hatékony, de több kódot és sokkal több működő tárhelyet igényel. Válassza ezeket az algoritmusokat nagy adathalmazokhoz.