Instruções
Passo 18
O centro de controle alertou que a lista de astronautas elegíveis para EVA também deve ser ordenada por prioridade decrescente. Existem algumas maneiras de ordenar um array - talvez a mais básica seja
bubble sort.
Bubble sort funciona repetidamente passando por uma lista, comparando itens vizinhos e trocando-os se estiverem na ordem errada. Após cada passo, o item que deve vir primeiro com base no seu critério de ordenação se aproxima (ou “borbulha” em direção) da sua posição correta no array. Aqui está como você pode ordenar crew por prioridade decrescente usando bubble sort:
// Outer loop: controls how many passes we make
for (let i = 0; i < crew.length - 1; i++) {
// Inner loop: compares neighboring items
for (let j = 0; j < crew.length - 1 - i; j++) {
// If current member has lower priority than next, swap
if (crew[j].priority < crew[j + 1].priority) {
// Using a temp variable for the swap
const temp = crew[j];
crew[j] = crew[j + 1];
crew[j + 1] = temp;
}
}
}
Crie uma nova função auxiliar chamada sortByPriorityDescending que aceite um parâmetro crew. Essa função deve ordenar diretamente o array de entrada crew pela prioridade decrescente, usar dois for loops aninhados e não deve retornar nada.
O que fazer:
Testes:
- Você deve ter uma `function` chamada `sortByPriorityDescending` com um `parameter` `crew`.
- Sua `sortByPriorityDescending` função deve usar dois `for` loops aninhados para realizar a ordenação.
- Sua `sortByPriorityDescending` função deve ordenar a `input` `crew` por `priority` em ordem decrescente.
- Sua função `sortByPriorityDescending` deve ordenar diretamente o `array` de `crew` de entrada no local e não retornar um novo `array`.
Console