Burbuļu šķirošanas priekšrocības un trūkumi

Programmētāji, kuri pāriet no datoru un tīmekļa izstrādes uz mobilo ierīču vai iegulto sistēmu kodēšanu, atklāj, ka vairāk laika tiek pavadīts, izvēloties un kodējot savas datu struktūras un algoritmus. Ar mazāku atmiņu un ierobežotu datu krātuvi nav vietas iepriekš izveidotām bibliotēkām vai ietvariem. Tiem, kam jāraksta savas šķirošanas rutīnas, šeit ir daži apsvērumi, izvēloties zemu burbuļu kārtošanu.

Fons

Burbuļu kārtošana ir vienkāršs algoritms, kas sakārto atmiņā esošo vienumu sarakstu. Ņemot vērā masīvu, kods atkārtoti salīdzina katru blakus esošo vienumu pāri un apmaina tos, ja tie nav kārtībā. Process atkārtojas, līdz vairs nenotiek mijmaiņas darījumi. Ja būtu iespējams skatīt masīvu, kamēr notiek kārtošana, zemās vērtības "burbuļotu" uz augšu, bet lielās vērtības pazeminātos uz leju. Šeit ir attiecīgais kods programmā Visual Basic 2010:

Dienas video

Kaut arī mijmaiņas vērtība = patiesa mijmaiņas vērtība = nepatiesa i = 0 līdz tbl. garums - 2 Ja tbl (i) > tbl (i + 1) Tad tmp = tbl (i) tbl (i) = tbl (i + 1) tbl (i) + 1) = tmp mijmaiņas = True End If Next End While

Kad izvēlēties burbuļu kārtošanu

Šim algoritmam ir vairākas priekšrocības. To ir vienkārši rakstīt, viegli saprast, un tas aizņem tikai dažas koda rindiņas. Dati ir sakārtoti vietā, tāpēc ir maz atmiņas, un pēc sakārtošanas dati atrodas atmiņā un ir gatavi apstrādei. Galvenais trūkums ir šķirošanas laiks. Vidējais laiks palielinās gandrīz eksponenciāli, palielinoties tabulas elementu skaitam. Desmitreiz lielāka vienību šķirošana aizņem gandrīz simts reizes ilgāku laiku.

Citi masīvu veidi

Šķirošanas algoritmi atšķiras pēc sarežģītības, ātruma un papildu izmaksām. Burbuļu kārtošana ir vismazāk sarežģīta, bet arī viena no lēnākajām. Citas uz masīvu balstītas šķirošanas, piemēram, ievietošanas kārtošana un apmaiņas kārtošana, ir nedaudz ātrākas, taču tām ir nepieciešams vairāk koda (skatiet tālāk esošās atsauces). Galvenā masīvu šķirošanas priekšrocība ir tā, ka tie izmanto vismazāko kodu un aizņem vismazāk darba atmiņas. Apsveriet šos veidus vienkāršiem masīviem, kuros ir mazāk nekā daži simti vienumu.

Sarežģītie kārtošanas algoritmi

Lielākas datu kopas prasa sarežģītāku kodu un vairāk atmiņas. Ātrā kārtošana un kaudzes kārtošana gan sadala, gan kopē datu kopas, lai optimizētu salīdzinājumu skaitu. Ātrā kārtošana nepārtraukti sadala sarakstu un pēc tam atkal saliek to sakārtotā secībā. Kaudzes kārtošana kopē datus koka struktūrā, pēc tam šķērso koku, lai kopētu datus atpakaļ kārtībā. Abi ir ātri un efektīvi, taču tiem ir nepieciešams vairāk koda un daudz vairāk darba vietas. Izvēlieties šos algoritmus lielām datu kopām.