Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 18.03.2018
Сообщений: 9
1

Отсортировать список со списками по возрастанию

18.03.2018, 11:29. Показов 644. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, подскажите пожалуйста: Как отсортировать список с подсписками по возрастанию?

Например при:
Lisp
1
`(  (d e 2)   (e c 3) (b c 1) (c d 4) (a b 5)  (a z 6) (c a 2) (b d 3 ) )
Должно получиться что-то типо такого:
Lisp
1
`( (b c 1) (d e 2) (c a 2) (b d 3 ) (e c 3) (c d 4) (a b 5) (a z 6) )
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2018, 11:29
Ответы с готовыми решениями:

Отсортировать список по возрастанию, а затем сформировать новый список
Дан список с элементами целого типа. Отсортировать его по возрастанию, а затем сформировать новый...

Отсортировать список по возрастанию
Здравствуйте! Помогите, пожалуйста, отсортировать список(причем в двоичном коде из файла) по...

Отсортировать список фамилий по возрастанию
Отсортировать список фамилий по возрастанию Вот начало const n=6; b:array of string...

Отсортировать список по возрастанию средней оценки
Составить программу определения средней оценки списка студентов по трём предметам. Отсортировать...

2
4699 / 4394 / 380
Регистрация: 12.05.2012
Сообщений: 3,096
18.03.2018, 13:20 2
Lisp
1
2
3
4
5
(defun ssort (w)
  (sort w #'< :key #'caddr))
 
> (ssort '((d e 2) (e c 3) (b c 1) (c d 4) (a b 5)  (a z 6) (c a 2) (b d 3 )))
((B C 1) (D E 2) (C A 2) (E C 3) (B D 3) (C D 4) (A B 5) (A Z 6))
Lisp
1
2
3
4
5
(defun ssort (w)
  (sort w #'< :key #'third))
 
> (ssort '((d e 2) (e c 3) (b c 1) (c d 4) (a b 5)  (a z 6) (c a 2) (b d 3 )))
((B C 1) (D E 2) (C A 2) (E C 3) (B D 3) (C D 4) (A B 5) (A Z 6))
2
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,644
Записей в блоге: 13
18.03.2018, 15:28 3
Или "ручками". Например, так (HomeLisp):

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
(defun vsort (lst)
  (if (null lst) nil
      (let ((min (car lst)))
         (dolist (i (cdr lst) t)
            (when (< (caddr i) (caddr min)) (setq min i)))
            (cons min (vsort (removef min lst))))))
 
==> VSORT
 
(vsort '((d e 2) (e c 3) (b c 1) (c d 4) (a b 5)  (a z 6) (c a 2) (b d 3 )))
 
==> ((B C 1) (D E 2) (C A 2) (E C 3) (B D 3) (C D 4) (A B 5) (A Z 6))
2
18.03.2018, 15:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2018, 15:28
Помогаю со студенческими работами здесь

Отсортировать линейный однонаправленный список по возрастанию
Задан линейный однонаправленный список из элементов типа byte. Отсортировать данный список по...

Отсортировать список по возрастанию таким образом
Необходимо отсортировать список по возрастанию таким образом: максимальный элемент перебрасывается...

Отсортировать список по средним оценкам по предметам по возрастанию
В списке у меня сохраняется структура с данными о студентах. Надо отсортировать список по средним...

Отсортировать список по возрастанию и сформировать два новых списка
Дан список, содержащий числовые данные. Отсортировать его по возрастанию и сформировать два новых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru