.. index:: Fusió de dues llistes ordenades Fusió de dues llistes ordenades --------------------------------------- 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: .. code-block:: python3 >>> 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] | | | | | |