Vad är Array Sortering?

Arraysortering är processen att ta de individuella elementen i en array och ordna dem i någon typ av logisk ordning enligt en serie regler som definieras av användaren. Processen innebär att man går igenom arrayen, ett element i taget, och testar det elementet mot de omgivande elementen för att avgöra om det behöver flyttas till ett annat index i arrayen. När man utför arraysortering finns det flera algoritmer som kan användas, speciellt när sorteringsvillkoren är numeriska i motsats till något mer godtyckligt. De flesta array-sorteringsalgoritmer mäts efter deras hastighet och effektivitet, där de långsammaste algoritmerna är de enklaste att programmera och de snabbaste är mycket mer komplexa.

Den enklaste array-sorteringsalgoritmen kallas bubbelsortering, och den är också den långsammaste. Processen börjar med en slinga som går igenom varje element i arrayen. Det aktuella elementet jämförs med nästa element i arrayen och, om nästa element har lägre värde än det aktuella elementet, växlas data vid indexen. Nackdelen med en bubbelsortering är att den måste gå igenom arrayen flera gånger för att göra alla nödvändiga byten för att sortera arrayen. I de mest grundläggande implementeringarna kommer sorteringen att gå igenom hela arrayen en hel gång för varje element den innehåller.

En urvalssortering använder en algoritm som utför arraysortering på ett något mer effektivt sätt än en bubbelsortering men kräver fortfarande flera iterationer genom arrayen. Denna sortering börjar med att loopa genom arrayen för att hitta det lägsta värderade elementet. Detta element placeras sedan i det första indexet i arrayen och vissa spårningsvariabler inkrementeras. Cykeln upprepas sedan och letar nu efter det näst lägsta värdet som sedan kommer att placeras i det andra indexet i arrayen. Processen fortsätter tills elementet med högsta värde placeras i det sista indexet i arrayen.

En metod för arraysortering som kan vara effektiv men ibland komplex att implementera kallas en quicksort. Snabbsortering innebär att man tar ett värde som är i mitten av alla möjliga värden som finns i arrayen. Algoritmen går igenom alla element i arrayen och sätter alla värden större än mediantalet i slutet av arrayen och lägre värden i början. Denna process utförs rekursivt på block i arrayen tills, i slutet, hela arrayen är sorterad. Förutsatt att mittvärdet som används för arrayen är ganska korrekt, kan detta vara ett mycket snabbt sätt att sortera.

En faktor som kan påverka en array-sorteringsalgoritm är det sätt på vilket data testas för ekvivalens. Enkla siffror är lätta att jämföra för vilket värde som är högre, men detta kanske inte är fallet för komplexa dataklasser där flera förhållanden måste jämföras. Ju längre tid det tar att jämföra om ett element är större än eller mindre än ett annat, desto längre tid tar det för algoritmen att sortera arrayen.