Een sorteeralgoritme is een algoritme om elementen van een lijst in een bepaalde volgorde zet. De meest gebruikte orders zijn numerieke volgorde en lexicografische volgorde. Efficiënt sorteren is belangrijk voor het optimaliseren van het gebruik van andere algoritmen (zoals zoeken en samenvoegen algoritmen) waarvoor gesorteerde lijsten te werken correct; het is ook vaak nuttig voor de canonicalizing van gegevens en voor het produceren van leesbare output. Meer formeel, de uitvoer moet voldoen aan twee voorwaarden:
-De uitvoer is in niet aflopende volgorde (elk element is niet kleiner zijn dan het vorige element de gewenste totale volgorde);
-De output is een permutatie (herschikking) van de ingang.
-Sorteren is een van de belangrijkste functies
vereist voor vele toepassingen zoals decoders voor digitale communicatie, digitale signaalverwerking, VLSI CAD enz. Dientengevolge, is er enorme belangstelling voor het versnellen van het sorteren in zowel software als hardware.
-De tijd die nodig is in de sortering is afhankelijk van aantal woorden in het geval van softwarealgoritmen de verbetering die we proberen te maken in dit project is om de tijd afhankelijk van het aantal bits per woord k en niet het aantal woorden