Сортировка списка методом Седжвика - Lisp

Узнай цену своей работы

Формулировка задачи:

Добрый день. Который день мучаюсь с сортировкой методом Шелла. Программа должна вычислять последовательность шагов сортировки двумя методами - Седжвика и Кнута. Надеюсь на Вашу помощь!

Решение задачи: «Сортировка списка методом Седжвика»

textual
Листинг программы
  1. (defun sedjvik (n)
  2.   (let ((res nil))
  3.     (iter (for i upfrom 0)
  4.       (let ((d (if (evenp i) (+ 1 (* (* 9 (^ 2 (\ i 2))) (- (^ 2 (\ i 2)) 1)))
  5.                              (+ (* 8 (^ 2 i)) (- (* 6 (^ 2 (\ (+ i 1) 2)))) 1))))
  6.         (if (<= (* 3 d) n) (collecting d into res) (return res))))))
  7.  
  8. ==> sedjvik
  9.  
  10. (sedjvik 1000)
  11.  
  12. ==> (1 5 19 41 109 209)
  13.  
  14. (sedjvik 10000)
  15.  
  16. ==> (1 5 19 41 109 209 505 929 2161)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы