Turbo C sortering metoder

Sortering en rekke data er en av de klassiske problemene med informatikk, og så det burde ikke komme som noen overraskelse at en rekke metoder for sortering i Turbo C og andre språk har blitt unnfanget. De spenner fra ineffektive, men enkle å implementere metoder til mye raskere, men mer kompliserte metoder. Den beste algoritmen for en situasjon, avhenger av den forventede størrelse av datasettet som skal sorteres, og viktigheten av effektivitet.

Bubble Sorter

The Bubble Sorter er den enkleste, og tregeste, sortering algoritme. Det går bare gjennom matrisen, å sammenlikne det aktuelle element til element rett foran den. Hvis disse to elementene er ute av drift, de bytte plass. Når boblesortering når slutten, sjekker den for å se om noe er endret steder. Hvis den gjorde det, starter det fra begynnelsen. Det fortsetter looping gjennom utvalget før den klarer å fullføre en full pass uten å gjøre noe bytte. I gjennomsnitt tar denne O (n²) tid, men hvis dataene er kjent for å være meget nesten sorteres, med kanskje bare ett element ut av plass, kan det fungere på O (n). Så det er en god metode for små arrays som ikke er sortert ofte eller større matriser som er kjent for å være allerede sorteres (eller nesten så) mesteparten av tiden.

valg Sorter

Utvalg liksom er litt mer raffinert enn boblesortering. Algoritmen fortsetter gjennom hele matrisen med data for å finne den minste element. Overalt hvor det element er, har den sin stilling byttet med det første element, og en teller bemerker at det første element i matrisen er kjent for å være riktig sortert. Den fortsetter deretter gjennom hele matrisen igjen, bortsett fra for det første element (som er kjent for å være på riktig sted.) Når den finner den laveste element, flyttes den til det andre sted og øker telleren for å indikere at de to første elementer er kjent for å bli sortert. Samlet er valg Sorter fungerer i O (n²) tid, men det har en fordel: på det meste, bare n-1 endringer noensinne skje til rekken, siden hvert element er bare flyttes når posisjonen er kjent. Dette gjør det en god algoritme i noen eksotiske situasjoner der du skriver data til minnet tar drastisk lenger enn å lese den.

Quicksort

Som navnet antyder, er det Quicksort raskt. I gjennomsnitt kan det utføre et slag i O (n log n) tid. Men det er mye mer komplisert enn mange andre programmer, og krever at utbygger vet litt om data i tabellen før hånd. Først en "pivot verdi" må velges. Dette er den verdien som utbygger mener er nær medianen av alle verdiene i tabellen. Jo bedre sving verdi, jo raskere Quicksort skal utføre. Deretter blir matrisen delt inn i to grupper: de ovenfor dreieverdi beveges mot høyre side, og de under svinge verdi blir beveget til venstre side. Forhåpentligvis, de to sidene er nær ved å være lik i størrelse, men de trenger ikke å være nøyaktig den samme. Endelig begynner quicksort algoritmen over fra scratch på hver side, med nye sving verdier valgt, og disse halvdelene er slutt delt inn i kvartaler. Når quicksort er inndelt i matrisen slik at hver seksjon har bare én verdi, har matrisen er sortert.

Som de fleste rekursive algoritmer, kan dette være vanskelig å visualisere, så oppfordres du til å se en trinnvis-eksempelet gitt i tredje referanse.