Programatorii care trec de la dezvoltarea PC și web la codificare pentru dispozitive mobile sau sisteme încorporate constată că se petrece mai mult timp selectând și codificând propriile structuri de date și algoritmi. Cu mai puțină memorie și stocare limitată de date, nu există loc pentru biblioteci sau cadre pre-construite. Așadar, pentru cei care trebuie să-și scrie propriile rutine de sortare, iată câteva considerații cu privire la alegerea sortării cu bule modeste.
fundal
Sortarea cu bule este un algoritm simplu care sortează o listă de elemente din memorie. Având în vedere o matrice, codul compară în mod repetat fiecare pereche de elemente adiacente și le schimbă dacă nu sunt în ordine. Procesul se repetă până când nu mai au loc schimburi. Dacă ar fi posibil să vizualizați matricea în timp ce sortarea este în desfășurare, valorile scăzute s-ar „bule” în sus, în timp ce valorile mari s-ar scufunda în jos. Iată codul relevant în Visual Basic 2010:
Videoclipul zilei
În timp ce swap = True Swap = Fals Pentru i = 0 To tbl.length - 2 Dacă tbl (i) > tbl (i + 1) Atunci tmp = tbl (i) tbl (i) = tbl (i + 1) tbl (i + 1) = tmp swap = True End If Next End While
Când să alegeți sortarea cu bule
Acest algoritm are mai multe avantaje. Este simplu de scris, ușor de înțeles și necesită doar câteva linii de cod. Datele sunt sortate la locul lor, astfel încât există puțină suprasarcină de memorie și, odată sortate, datele sunt în memorie, gata pentru procesare. Dezavantajul major este timpul necesar sortării. Timpul mediu crește aproape exponențial pe măsură ce crește numărul de elemente ale tabelului. De zece ori numărul de articole durează de aproape o sută de ori mai mult pentru a sorta.
Alte sortimente de matrice
Algoritmii de sortare variază în ceea ce privește complexitatea, viteza și cheltuielile generale. Sortarea cu bule este cea mai puțin complexă, dar și una dintre cele mai lente. Alte sortări bazate pe matrice, cum ar fi sortarea prin inserție și sortarea prin schimb, sunt puțin mai rapide, dar iau mai mult cod (a se vedea referințele de mai jos). Principalul avantaj al sortărilor bazate pe matrice este că folosesc cel mai puțin cod și ocupă cea mai mică cantitate de memorie de lucru. Luați în considerare aceste tipuri pentru matrice simple cu mai puțin de câteva sute de elemente.
Algoritmi de sortare complexi
Seturile de date mai mari necesită un cod mai complex și mai multă memorie. Sortarea rapidă și sortarea grămadă împart și copiază seturile de date pentru a optimiza numărul de comparații. Sortarea rapidă împarte în mod continuu lista, apoi o reasambla în ordine sortată. Sortarea heap copiază datele într-o structură arborescentă, apoi traversează arborele pentru a copia datele înapoi în ordine. Ambele sunt rapide și eficiente, dar necesită mai mult cod și mult mai mult spațiu de stocare. Alegeți acești algoritmi pentru seturi mari de date.