Mullsorteerimise eelised ja puudused

click fraud protection

Programmeerijad, kes vahetavad arvuti- ja veebiarenduselt üle mobiilseadmete või manustatud süsteemide kodeerimise, leiavad, et rohkem aega kulub oma andmestruktuuride ja algoritmide valimisele ja kodeerimisele. Väiksema mälu ja piiratud andmesalvestusega pole ruumi eelehitatud teekide või raamistike jaoks. Neile, kes peavad ise sorteerimisrutiini kirjutama, on siin mõned kaalutlused madala mulli sortimise valimisel.

Taust

Mullide sortimine on lihtne algoritm, mis sorteerib mälus olevate üksuste loendi. Arvestades massiivi, võrdleb kood korduvalt iga külgnevate üksuste paari ja vahetab need, kui need pole korras. Protsessi korratakse seni, kuni enam vahetusi ei toimu. Kui sortimise ajal oleks võimalik massiivi vaadata, "mullitaks" madalad väärtused üles, samas kui suured väärtused vajuksid alla. Siin on asjakohane kood rakenduses Visual Basic 2010:

Päeva video

Kuigi vahetus = tõene vahetus = väär i = 0 kuni tbl. pikkus - 2 Kui tbl (i) > tbl (i + 1) Siis tmp = tbl (i) tbl (i) = tbl (i + 1) tbl (i + 1) = tmp swap = True End If Next End While

Millal valida mullide sortimine

Sellel algoritmil on mitmeid eeliseid. Seda on lihtne kirjutada, lihtne mõista ja see võtab vaid mõne koodirea. Andmed sorteeritakse paika, nii et mälu on vähe ja pärast sorteerimist on andmed mälus ja töötlemiseks valmis. Peamine puudus on sorteerimiseks kuluv aeg. Keskmine aeg pikeneb peaaegu plahvatuslikult, kui tabeli elementide arv suureneb. Kümme korda suurema arvu esemete sortimiseks kulub peaaegu sada korda rohkem aega.

Muud massiivi sortid

Sorteerimisalgoritmid erinevad keerukuse, kiiruse ja üldkulude poolest. Mullide sortimine on kõige vähem keerukas, kuid ka üks aeglasemaid. Muud massiivipõhised sortimised, nagu sisestussortimine ja vahetussortimine, on veidi kiiremad, kuid võtavad rohkem koodi (vt allpool olevaid viiteid). Massiivipõhiste sortide peamine eelis on see, et nad kasutavad kõige vähem koodi ja võtavad kõige vähem töömälu. Mõelge nendele lihtsatele massiividele, milles on vähem kui paarsada üksust.

Komplekssed sortimisalgoritmid

Suuremad andmekogumid nõuavad keerukamat koodi ja rohkem mälu. Kiirsortimine ja hunniku sortimine jagavad ja kopeerivad andmekomplekte, et optimeerida võrdluste arvu. Kiirsortimine jagab loendi pidevalt pooleks, seejärel koondab selle uuesti sorteeritud järjekorras. Kuhja sortimine kopeerib andmed puustruktuuri ja seejärel läbib puu, et kopeerida andmed uuesti järjekorda. Mõlemad on kiired ja tõhusad, kuid võtavad rohkem koodi ja palju rohkem tööd. Valige need algoritmid suurte andmehulkade jaoks.