Mesclar Classificação
Nesse desafio, você implementará a sub-rotina de mesclagem da classificação de mesclagem. Especificamente, você deve criar uma função ou programa ou verbo ou similar que utilize duas listas, cada uma classificada em ordem crescente, e as combine em uma lista classificada em ordem crescente. Requisitos:
- Seu algoritmo deve levar uma quantidade de tempo assintoticamente linear no tamanho da entrada. Pare de fornecer soluções O (n ^ 2).
- Você não pode usar nenhuma função interna capaz de classificar uma lista, mesclar uma lista ou algo assim. Discrição do autor.
- O código deve ser capaz de lidar com elementos repetidos.
- Não se preocupe com listas vazias.
Exemplos:
merge([1],[0,2,3,4])
[0,1,2,3,4]
merge([1,5,10,17,19],[2,5,9,11,13,20])
[1, 2, 5, 5, 9, 10, 11, 13, 17, 19, 20]
Isso é código-golfe , então o código mais curto pode ganhar!
b=a;b=b.length
pode duplicar toda a matriz a
(e resultar em tempo O (n ^ 2) se executado para cada elemento) ou duplicar apenas a referência à matriz (tempo O (n)). Qual conta?