0 / 0 / 0
Регистрация: 16.01.2013
Сообщений: 11
1

Соединить два упорядоченных по неубыванию списка в упорядоченный по неубыванию список

21.01.2014, 08:03. Показов 2404. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать прогу соединяющую два упорядоченных по неубыванию списка в упорядоченный по неубыванию список(без сортировки).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2014, 08:03
Ответы с готовыми решениями:

Образовать из элементов двух упорядоченных списков новый список, тоже упорядоченный
Даны два упорядоченных списка. Образовать из элементов этих списков новый список, также...

Объединить два упорядоченных по неубыванию списка в один упорядоченный по неубыванию
Помогите описать процедуру, которая объединяет два упорядоченных по неубыванию списка X1 и X2 в...

Объединить два упорядоченных по неубыванию списка М1 и М2 в один упорядоченный
Написать программу, содержащую процедуру, которая объединяет два упорядоченных по неубыванию списка...

Образовать из двух упорядоченных по неубыванию массивов один, упорядоченный по неубыванию
Даны два числа m и n, и два упорядоченных по неубыванию массива A≤A≤...≤A и...

3
4705 / 4400 / 380
Регистрация: 12.05.2012
Сообщений: 3,100
21.01.2014, 10:12 2
Лучший ответ Сообщение было отмечено как решение

Решение

как вариант:
Lisp
1
2
3
4
5
6
7
8
9
(defun bowl-sorted (w v &optional acc)
  (cond ((and (null w) (null v)) (reverse acc))
        ((null w) (nconc (reverse acc) v))
        ((null v) (nconc (reverse acc) w))
        ((<= (car w) (car v)) (bowl-sorted (cdr w) v (cons (car w) acc)))
        ((bowl-sorted w (cdr v) (cons (car v) acc)))))
 
> (bowl-sorted '(1 1 2 5) '(0 3 4))
(0 1 1 2 3 4 5)
3
Модератор
Эксперт функциональных языков программированияЭксперт Python
37326 / 20758 / 4275
Регистрация: 12.02.2012
Сообщений: 34,161
Записей в блоге: 14
21.01.2014, 10:33 3
Лучший ответ Сообщение было отмечено как решение

Решение

Двухпутевое слияние:

Lisp
1
2
3
4
5
6
7
8
9
10
11
(defun merge (l1 l2)
  (cond ((null l1) l2)
        ((null l2) l1)
        ((>= (car l1) (car l2)) (cons (car l2) (merge l1 (cdr l2))))
        (t (cons (car l1) (merge (cdr l1) l2)))))
 
==> merge
 
(merge '(1 2 3 11 12 13) '(4 5 6 77 88))
 
==> (1 2 3 4 5 6 11 12 13 77 88)
2
4705 / 4400 / 380
Регистрация: 12.05.2012
Сообщений: 3,100
21.01.2014, 11:37 4
Lisp
1
2
3
4
5
6
7
8
9
10
11
(defun bowl-sorted (w v)
  (cond ((null w) v)
        ((null v) w)
        ((< (car w) (car v)) (glue w v))
        (t (glue v w))))
 
(defun glue (w v)
  (cons (car w) (bowl-sorted (cdr w) v)))
 
> (bowl-sorted '(1 1 2 5) '(0 3 4))
(0 1 1 2 3 4 5)
Добавлено через 50 секунд
Lisp
1
2
3
4
5
6
7
8
9
(defun bowl-sorted (w v)
  (cond ((null w) v) ((null v) w)
        ((< (car w) (car v)) (glue w v)) ((glue v w))))
 
(defun glue (w v)
  (cons (car w) (bowl-sorted (cdr w) v)))
 
> (bowl-sorted '(1 1 2 5) '(0 3 4))
(0 1 1 2 3 4 5)
2
21.01.2014, 11:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2014, 11:37
Помогаю со студенческими работами здесь

Сформировать новый массив, упорядоченный по неубыванию, из двух массивов-параметров, уже упорядоченных по неубыванию
Функция, формирующая новый массив, упорядоченный по неубыванию, из двух массивов-параметров, уже...

Создать новый массив, упорядоченный по неубыванию из двух упорядоченных массивов
.........Функция, формирующая новый массив, упорядоченный по неубывнию, из двух...

Создать из элементов упорядоченных по неубыванию массивов новый массив, упорядоченный по возрастанию
Даны два натуральных числа n и m (n&lt;=100, m&lt;=100) и два упорядоченных по неубывания массивы целых...

Получить упорядоченный по неубыванию массив методом слияния двух упорядоченных по невозрастанию массивов
Создайте консольное приложение. Опишите массив и выполните его сортировку: Получить упорядоченный...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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