Hva er Array sortering?
Array sortering er prosessen med å ta de enkelte elementene i en matrise og ordne dem i en slags logisk rekkefølge i henhold til en serie regler definert av brukeren. Prosessen innebærer å gå gjennom matrisen, ett element av gangen, og teste det elementet mot de omgivende elementene for å bestemme om det må flyttes til en annen indeks i arrayen. Når du utfører matrisortering, er det flere algoritmer som kan brukes, spesielt når sorteringsbetingelsene er numeriske i motsetning til noe mer vilkårlig. De fleste array-sorteringsalgoritmer måles etter hastighet og effektivitet, med de tregeste algoritmene som er de enkleste å programmere og den raskeste er mye mer kompleks.
Den enkleste array-sorteringsalgoritmen kalles en boble sortering, og den er også den tregeste. Prosessen begynner med en løkke som vil gå gjennom hvert element i matrisen. Gjeldende element sammenlignes med neste element i matrisen, og hvis neste element har lavere verdi enn det gjeldende elementet, byttes dataene på indeksene. Ulempen med en boble sortering er at den trenger å gå gjennom matrisen flere ganger for å lage alle nødvendige bytter for å sortere matrisen. I de mest grunnleggende implementeringene vil sorteringen sløyfe gjennom hele matrisen en komplett tid for hvert element den inneholder.
En utvalgssortering bruker en algoritme som utfører matesortering på en litt mer effektiv måte enn en boble-sortering, men krever fortsatt flere iterasjoner gjennom matrisen. Denne sorteringen starter med å sløyfe gjennom matrisen for å finne det laveste verdsatte elementet. Dette elementet blir deretter plassert i den første indeksen i matrisen, og noen sporingsvariabler økes. Syklusen gjentas deretter, og ser nå etter den neste laveste verdien som deretter vil bli plassert i den andre indeksen til matrisen. Prosessen fortsetter til elementet med høyeste verdi er plassert i den siste indeksen i matrisen.
En metode for matrisortering som kan være effektiv, men noen ganger kompleks å implementere, er kjent som en quicksort. Quicksorting innebærer å ta en verdi som er i midten av alle mulige verdier som holdes i matrisen. Algoritmen går gjennom alle elementene i matrisen og setter alle verdier større enn median tallet på slutten av matrisen, og lavere verdier i begynnelsen. Denne prosessen blir utført rekursivt på blokker av matrisen inntil på slutten, hele gruppen er sortert. Forutsatt at middelverdien som brukes for matrisen er ganske nøyaktig, kan dette være en veldig rask måte å sortere.
En faktor som kan påvirke en array-sorteringsalgoritme, er hvordan dataene blir testet for ekvivalens. Det er enkelt å sammenligne enkle tall for hvilken verdi er større, men dette er kanskje ikke tilfelle for komplekse dataklasser der flere forhold må sammenliknes. Jo lengre tid det tar å sammenligne om ett element er større enn eller mindre enn et annet, jo lenger tid vil det ta for algoritmen å sortere matrisen.