Menu
Coddy logo textTech

Pseudo Code

Lição 4 de 9 do curso Radix Sort - Série DSA da 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 é o valor posicional: 1 para unidades, 10 para dezenas, 100 para centenas. (x / exp) % 10 extrai esse dígito.
  • countingSortByDigit é uma ordenação estável em um único dígito: ele conta quantos de cada dígito aparecem, transforma essas contagens em posições e, em seguida, coloca os elementos de trás para frente para preservar a ordem.
  • radixSort apenas executa essa passagem uma vez por dígito, parando quando exp ultrapassa o maior número.

Experimente você mesmo

Esta lição não inclui um desafio de código.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Radix Sort - Série DSA