Menu
Coddy logo textTech

Pseudo Code

Leçon 4 sur 9 du cours Radix Sort - Série DSA de Coddy.

countingSortByDigit(array, exp):
   n = length(array)
   output = array of size n
   count = array of 10 zeros
   for each x in array:                 # tally each digit
      count[(x / exp) % 10] += 1
   for d from 1 to 9:                   # running totals -> positions
      count[d] += count[d - 1]
   for k from n-1 down to 0:            # place from the back (stable)
      d = (array[k] / exp) % 10
      count[d] -= 1
      output[count[d]] = array[k]
   return output

radixSort(array):
   max = largest value in array
   exp = 1
   while max / exp > 0:
      array = countingSortByDigit(array, exp)
      exp = exp * 10
  • exp est la valeur de position : 1 pour les unités, 10 pour les dizaines, 100 pour les centaines. (x / exp) % 10 extrait ce chiffre.
  • countingSortByDigit est un tri stable sur un seul chiffre : il compte combien de fois chaque chiffre apparaît, transforme ces comptes en positions, puis place les éléments de l'arrière vers l'avant pour préserver l'ordre.
  • radixSort exécute simplement ce passage une fois par chiffre, s'arrêtant lorsque exp dépasse le plus grand nombre.

Essayez vous-même

Cette leçon ne comprend pas de défi de code.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Radix Sort - Série DSA