Programmerere, der skifter fra pc og webudvikling til kodning til mobile enheder eller indlejrede systemer finder ud af, at der bruges mere tid på at vælge og kode deres egne datastrukturer og algoritmer. Med mindre hukommelse og begrænset datalagring er der ikke plads til forudbyggede biblioteker eller rammer. Så for dem, der har brug for at skrive deres egne sorteringsrutiner, er her nogle overvejelser om at vælge den lavt boble sortering.

Baggrund

Boblesorteringen er en simpel algoritme, der sorterer en liste over elementer i hukommelsen. Givet en matrix sammenligner koden gentagne gange hvert par tilstødende elementer og bytter dem, hvis de ikke er i orden. Processen gentages, indtil der ikke forekommer flere swaps. Hvis det var muligt at se arrayet, mens sorteringen er i gang, ville de lave værdier "boble" til toppen, mens de store værdier synke til bunden. Her er den relevante kode i Visual Basic 2010:

Mens swap = True swap = False For i = 0 Til tbl.length - 2 If tbl (i)> tbl (i + 1) Derefter tmp = tbl (i) tbl (i) = tbl (i + 1) tbl (i) + 1) = tmp swap = True End Hvis Next End While

Hvornår skal du vælge boble sortering

Denne algoritme har flere fordele. Det er enkelt at skrive, let at forstå, og det tager kun et par koder. Dataene sorteres på plads, så der er lidt hukommelsesomkostninger, og når de er sorteret, er dataene i hukommelsen klar til behandling. Den største ulempe er den tid, det tager at sortere. Den gennemsnitlige tid øges næsten eksponentielt, når antallet af tabelelementer øges. Ti gange tager antallet af varer næsten hundrede gange så lang tid at sortere.

Andre array sorter

Sorteringsalgoritmer varierer i kompleksitet, hastighed og overhead. Boblesorteringen er den mindst komplekse, men også en af ​​de langsomste. Andre matrixbaserede slags, såsom indsættelsessortering og udvekslingssortering, er lidt hurtigere, men tag mere kode (se referencerne nedenfor). Den største fordel ved array-baserede sorter er, at de bruger mindst kode og tager mindst mulig arbejdshukommelse. Overvej disse slags til enkle matriser med mindre end et par hundrede genstande.

Komplekse sorteringsalgoritmer

Større datasæt kræver mere kompleks kode og mere hukommelse. Den hurtige sortering og heap sorterer både opdelingen og kopierer datasættene for at optimere antallet af sammenligninger. Den hurtige sortering opdeler kontinuerligt listen og samler den derefter igen i sorteret rækkefølge. Heapsorteringen kopierer dataene til en trestruktur, hvorefter de krydser træet for at kopiere dataene i orden igen. Begge er hurtige og effektive, men tager mere kode og meget mere arbejdsopbevaring. Vælg disse algoritmer til store datasæt.