🫧 Como funciona o BubbleSort ?

A estrutura bubble sort é um algoritmo de ordenação não recursivo que usa a técnica de trocas sucessivas.


A cada passo, compara elementos vizinhos e se eles estiverem desordenados, posiciona (flutua) o maior ou menor elemento para o fim da lista.


Esse processo se repete várias vezes, até que toda a lista esteja ordenada.


✏️ Fácil de entender e implementar

📉 Lento para listas grandes, que exigem várias comparações

📒 Usado mais para ensino do que em sistemas reais

function bubbleSort(array, length){

let i, fim, aux;

for (fim = length - 1; fim > 0; fim--){

for (i = 0; i < fim; i++) {

if(array[i] > array[i + 1]){

aux = array[i];

array[i] = array[i + 1];

array[i + 1] = aux;

}

}

}

}

📥 Como funciona o InsertionSort ?

A estrutura insertion sort é um algoritmo de ordenação não recursivo que lembra a organização de um baralho de cartas.


Ele começa assumindo que o primeiro elemento já está ordenado. Então, sempre compara o próximo elemento com os seus antecessores.


Após as comparações terminarem, insere o elemento atual na posição correta. Os elementos desorganizados são "empurrados" para o fim da lista.


Dessa forma, o insertion sort constrói uma lista ordenada à esquerda, um item por vez.


✏️ Fácil de entender e implementar

📏 Eficiente para listas pequenas ou quase ordenadas

📉 Lento para listas grandes

function insertionSort(array, length){

let i = 0;

let j = 1;

let aux = 0;

while(j < length){

aux = array[j];

i = j - 1;

while((i >= 0) && (array[i] > aux)){

array[i + 1] = array[i];

i = i - 1;

}

array[i + 1] = aux;

j = j + 1;

}

}

🎯 Como funciona o SelectionSort ?

A estrutura selection sort é um algoritmo de ordenação não recursivo que procura os valores extremos da lista e os posiciona corretamente.


Primeiro, ele procura o menor ou maior valor da lista e o coloca na primeira posição.


Depois, procura o menor ou maior que sobrou e coloca na segunda posição. E assim, sucessivamente, até ordenar toda a lista.


✏️ Simples de entender

🧮 Sempre faz o mesmo número de comparações

📉 Não é rápido para listas grandes

function selectionSort(array, length){

let i = 0;

let j = 0;

let aux = 0;

let min = 0;

for(i = 0; i < (array.lenght - 1); i++){

min = i;

for(j = (i + 1); j < array.lenght; j++){

if(array[j] < array[min]){

min = j;

}

if(array[i] != array[min]){

aux = array[i];

array[i] = array[min];

array[min] = aux;

}

}

}

}