Dissenya varies funcions fusioOrdX(l1, l2) tal que donades dues llistes ordenades l1 i l2 d’elements del mateix tipus (o comparables entre sí) calcula i retorna una nova llista ordenada resultat de la fusió de l1 i l2.
Pot haver elements comuns en les dues llistes, tot i que en aquests tres primers doctests no n’hi ha:
>>> primera = [12, 25, 31] >>> segona = [7, 9, 13, 29, 30, 37, 39] >>> fusioOrd(primera, segona) [7, 9, 12, 13, 25, 29, 30, 31, 37, 39] >>> fusioOrd(['albert', 'joan', 'xavier'], ['alicia', 'carles']) ['albert', 'alicia', 'carles', 'joan', 'xavier'] >>> fusioOrd([], [-3.4, -1.7, 0, 8]) [-3.4, -1.7, 0, 8]
Has de fer dues solucions de cadascun dels quatre supòsits que s’enumeren més abaix. En la primera de les dues solucions de cada supòsit has de fer servir la sentència iterativa while, i en la segona has de usar els métodes i funcions de la classe list que permeten ordenar i manipular llistes.
Les llistes l1 i l2 no contenen elements repetits, i la llista fusionada tampoc pot tenir-ne cap.
>>> primera = [12, 25, 31]
>>> segona = [7, 9, 12, 13, 29, 30, 37, 39]
>>> fusioOrd1(primera, segona)
[7, 9, 12, 13, 25, 29, 30, 31, 37, 39]
Les llistes l1 i l2 no contenen elements repetits, però la llista fusionada conté repetits els elements comuns a les llistes l1 i l2.
>>> primera = [12, 25, 31]
>>> segona = [7, 9, 12, 13, 29, 30, 37, 39]
>>> fusioOrd2(primera, segona)
[7, 9, 12, 12, 13, 25, 29, 30, 31, 37, 39]
Les llistes l1 i l2 poden contenir elements repetits, i la llista fusionada també.
>>> primera = [12, 25, 25, 31]
>>> segona = [7, 9, 12, 12, 13, 29, 30, 37, 37, 39]
>>> fusioOrd3(primera, segona)
[7, 9, 12, 12, 12, 13, 25, 25, 29, 30, 31, 37, 37, 39]
Les llistes l1 i l2 poden contenir elements repetits, però la llista fusionada no pot tenir-ne cap.
>>> primera = [12, 25, 25, 31]
>>> segona = [7, 9, 12, 12, 13, 29, 30, 37, 37, 39]
>>> fusioOrd4(primera, segona)
[7, 9, 12, 13, 25, 29, 30, 31, 37, 39]