Azok a programozók, akik számítógépes és webes fejlesztésről 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 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 megtekinthető lenne a tömb rendezés közben, akkor az alacsony értékek felfelé "buborékolnának", míg a nagyok lefelé süllyednének. Íme a vonatkozó kód a Visual Basic 2010-ben:
A nap videója
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ükre 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 válogatása csaknem százszor annyi ideig tart.
Egyéb tömb rendezések
A rendezési algoritmusok összetettségükben, sebességükben és többletköltségükben különböznek egymástól. 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 típusokat néhány száznál kevesebb elemet tartalmazó egyszerű tömbök esetében.
Komplex 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 halomrendezés az adatokat egy fastruktúrába másolja, majd bejárja a fát, hogy visszamásolja az adatokat 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.