DEV Community

Daniel Dormin
Daniel Dormin

Posted on

Ordenação por seleção - Selection Sort

Seguindo nossos estudos vamos agora para o Selection Sort, um algoritmo simples que é um pouquinho diferente que o último citado o Bubble sort seguindo a notação Big O a complexidade é O(n²)
não é um algoritmo rápido mas como nosso objetivo é estudo ele nos serve bem :D

Como ele funciona?

A ordenação por seleção é um algoritmo de ordenação baseado em se passar sempre o menor valor do vetor para a primeira posição (ou o maior dependendo da ordem requerida), depois o de segundo menor valor para a segunda posição, e assim é feito sucessivamente.

Image description
Na imagem acima é exemplificado!

Ou seja ele é beeem parecido com o bubble sort que joga o maior valor para o final do vetor, em velocidade nós não ganhamos muito ¯_ (ツ)_/¯

Mas vamos para o código

let arr = [17, 14, 23, 2, 4, 9, 15, 1, 0, 3, 5]

for(let i = 0; i < arr.length; i++){
    let min = i
    let aux 
    for(let j = i + 1; j <= arr.length; j++){
        if(arr[j] < arr[min]){
            min = j
        }
    }
    if (i != min) {
        aux = arr[i]
        arr[i] = arr[min]
        arr[min] = aux
    }

}
console.log(arr)
Enter fullscreen mode Exit fullscreen mode

Como dito o código não é muito diferente, ainda temos um loop aninhado que resolve um valor por vez como é visto na imagem.
Muito obrigado por ler até aqui, fiquem a vontade em me enviar dúvidas comentários ou críticas.

Referências

Entendo algoritmos - Aditya Y. Bhargava

Wikpédia selection sort

Top comments (0)