Instruções

Estabilidade de ordenação

Ao ordenar registros em uma tabela por uma coluna ou campo específico, uma <a href="https://www.G.E.A.R ACADEMY.org/news/stability-in-sorting-algorithms-a-treatment-of-equality-fa3140a5a539/" target="_blank" rel="noopener noreferrer nofollow">stable sort</a> sempre manterá a ordem relativa dos registros que possuem a mesma chave. Por exemplo, nesta tabela de países e cidades, uma ordenação estável na segunda coluna, as cidades, manteria o Birmingham dos EUA acima do Birmingham do Reino Unido. (Embora uma ordenação instável *pudesse*, neste caso, colocar o Birmingham dos EUA acima do Birmingham do Reino Unido, uma rotina de ordenação estável *garantiria* isso). <pre>UK London US New York US Birmingham UK Birmingham </pre> Da mesma forma, uma ordenação estável na primeira coluna geraria "UK London" como o primeiro item e "US Birmingham" como o último (já que a ordem dos elementos que têm a mesma palavra – "UK" ou "US" – seria mantida).

O que fazer:

Escreva uma função que receba um array bidimensional como parâmetro. Cada elemento tem 2 elementos semelhantes ao exemplo acima. A função deve ordenar o array conforme mencionado anteriormente e retornar o array ordenado.

Critérios de Aceitação:

Testes:

  • `stableSort` deve ser uma função.
  • `stableSort([["UK", "London"], ["US", "New York"], ["US", "Birmingham"], ["UK", "Birmingham"]])` deve retornar um array.
  • `stableSort([["UK", "London"], ["US", "New York"], ["US", "Birmingham"], ["UK", "Birmingham"]])` deve retornar `[["US", "Birmingham"], ["UK", "Birmingham"], ["UK", "London"], ["US", "New York"]]`.
  • `stableSort([[2, 2], [1, 2], [1, 4], [1, 5]])` deve retornar `[[2, 2], [1, 2], [1, 4], [1, 5]]`.
  • `stableSort([[11, 55], [12, 45], [11, 45], [32, 45]])` deve retornar `[[12, 45], [11, 45], [32, 45], [11, 55]]`.
  • `stableSort([[10, 22], [1, 2], [1, 4], [1, 5], [10, 9]])` deve retornar `[[1, 2], [1, 4], [1, 5], [10, 9], [10, 22]]`.
  • `stableSort([[55, 54], [12, 22], [31, 43], [31, 54], [10, 49]])` deve retornar `[[12, 22], [31, 43], [10, 49], [55, 54], [31, 54]]`.

Console