Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2011, 18:16   #1
Matadora
Пользователь
 
Аватар для Matadora
 
Регистрация: 04.09.2010
Сообщений: 25
Вопрос LISP рекурсия и сортировка списка

привет всем
помогите пожалуйста решить следующую задачу:

Нужно создать рекурсивную функцию (или макрос) которая сортирует список. Например, переделывает из списка (3 2 1 5 6 0 4) список (5 3 1 0 2 4 6).
Тоисть, находит самое малое значение, помещает его в середину списка, а другие элементы списка раскладывает по убыванию вокруг наименьшего значения.
Matadora вне форума Ответить с цитированием
Старый 22.10.2011, 11:35   #2
Matadora
Пользователь
 
Аватар для Matadora
 
Регистрация: 04.09.2010
Сообщений: 25
По умолчанию

Код:
(defun sort-around-min (list)
  (labels ((iter (list result direction)
             (if list
                 (let ((min (apply #'min list))
                       (new-direction (if direction nil t)))
                   (iter (remove min list)
                         (if direction
                             (cons min result)
                             (append result (list min)))
                         new-direction))
                 result)))
    (iter list nil nil)))
Matadora вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Lisp рекурсия Nicko_mt Помощь студентам 3 04.10.2011 02:26
LISP.разделить список на 2, в первый поместить четные элементы исходного списка, во второй - нечетные mashik2503 Помощь студентам 1 17.05.2011 19:14
Паскаль (Файлы, множества, рекурсия, сортировка) Фед Помощь студентам 0 10.05.2011 23:26
Lisp рекурсия Horror89 Помощь студентам 4 28.04.2010 22:04
Быстрая сортировка на LISP Sparky Помощь студентам 3 14.04.2010 12:47