2013-03-06 3 views
-2

Давайте объединимся - Объединение списков Пусть a и b будут отсортированы (наименьшие по величине) списки целых чисел, возможно, разных длин. Напишите программу, которая «объединяет» a и b, чтобы создать список c. Список c должен состоять из всех элементов a и b и также должен быть отсортирован (от малого до большого). Примечание. Ваша программа может не использовать метод сортировки list() в списке c или каким-либо образом отсортировать значения в списке c.Слияние списков python

То, что я писал:

from random import randint 
a=[randint(1,200) for i in range(20)] 
a.sort() 
b=[randint(1,100) for j in range(15)] 
b.sort() 
c=a.extend(b) 
print(c) 
+0

Объединить сортировку? http://www.personal.kent.edu/~rmuhamma/Algorithms/MyAlgorithms/Sorting/mergeSort.htm –

+1

Это просто обычное слияние списка. Не требуется сортировка слияния. Просто вытащите минимальный элемент с передней части списков на каждом шаге - легко, быстро. – nneonneo

+0

Если это домашнее задание, отметьте его как таковое, иначе, пожалуйста, попробуйте, чтобы это выглядело как настоящий вопрос! – jathanism

ответ

3

Если вы знаете, что оба a и b отсортированы, то вы можете посмотреть на голове каждый списка, сравнить значения, а затем вы можете выбрать, какие один из тех, значения являются наименьшими. Вы можете создать список c, создав его по одному элементу за раз, каждый раз используя наименьшее целое число, пока не закончится один список. Затем просто добавьте остальную часть другого списка, и все готово.

Смежные вопросы