Menu
Coddy logo textTech

Pseudo Code

Урок 4 из 9 курса Поразрядная сортировка — серия DSA на Coddy.

countingSortByDigit(array, exp):
   n = length(array)
   output = array of size n
   count = array of 10 zeros
   for each x in array:                 # подсчет каждой цифры
      count[(x / exp) % 10] += 1
   for d from 1 to 9:                   # накопленные суммы -> позиции
      count[d] += count[d - 1]
   for k from n-1 down to 0:            # размещение с конца (устойчиво)
      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 — это разряд: 1 для единиц, 10 для десятков, 100 для сотен. (x / exp) % 10 извлекает эту цифру.
  • countingSortByDigit — это устойчивая сортировка по одной цифре: она подсчитывает, сколько раз встречается каждая цифра, преобразует эти значения в позиции, а затем размещает элементы от конца к началу для сохранения порядка.
  • radixSort просто запускает этот проход один раз для каждого разряда, останавливаясь, когда exp превышает самое большое число.

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Поразрядная сортировка — серия DSA