<< | к задаче | главная | печатать | обсудить(0 сообщений) >>
Задача: Поразрядная сортировка, общий принцип
Псевдокод: реализация на массивах управление:
  1. // инициализация дополнительных списков - "карманов"
  2. pockets = array[range]
  3. for i = 0 to range - 1
  4. pockets[i] = newArray
  5.  
  6. // Основной цикл
  7. for step = 0 to width - 1
  8. // распределение
  9. for i = 0 to (sortedArr.length - 1)
  10. // Получаем значение step-го разряда текущего элемента(ключа)
  11. // ("/" - целочисленное деление)
  12. currDigit = (sortedArr[i] % range^(step + 1)) / range^step
  13. pockets[currDigit].add(sortedArr[i]);
  14.  
  15. // сборка
  16. k = 0 // индекс элементов новой последовательности
  17. for i = 0 to range - 1
  18. for ii = 0 to (pockets[i].length - 1)
  19. sortedArr[k++] = pockets[i][ii]
  20. // Очищение карманов
  21. if step < width - 1
  22. for i = 0 to range - 1
  23. pockets[i] = newArray
  24.  
  25.  

 
каталог | задачи | паттерны | исходники | стат | форумы | карта сайта | контакты | ссылки 
© 2000-2018 CodeLAB Group
  Все права защищены
Страница сгенерирована за 0.002579 секунд
Количество запросов к БД: 3, gzip: 2.8kb/9.0kb(70%)