#include<stdio.h>#define LEN 6intmain(){intvetor[LEN]={4,6,9,2,4,3};for(inti=1;i<LEN;i++){intj=i;while((vetor[j]<vetor[j-1])&&j>0){intaux=vetor[j-1];vetor[j-1]=vetor[j];vetor[j]=aux;--j;}}for(inti=0;i<LEN;i++){printf("%d",vetor[i]);}}
#include<stdio.h>#define LEN 6intmain(){intv[LEN]={4,6,9,2,4,3};for(intn=1;n<=LEN;n++){for(intj=0;j<LEN-1;j++){if(v[j]>v[j+1]){intaux=v[j];v[j]=v[j+1];v[j+1]=aux;}}}for(inti=0;i<LEN;i++){printf(" %d ",v[i]);}}
// versão melhorada// realiza comparações após o elemento que iniciou a iteração anterior// isso diminui a quantidade de comparações#include<stdio.h>#define LEN 6intmain(){intv[LEN]={4,6,9,2,4,3};for(inti=1;i<=LEN-1;i++){for(intj=LEN-1;j>=i;j--){if(v[j]<v[j-1]){intaux=v[j];v[j]=v[j-1];v[j-1]=aux;}}}for(inti=0;i<LEN;i++){printf(" %d ",v[i]);}}
para evitar que o processo continue mesmo depois que o vetor estiver ordenado, basta declarar uma variável que sinaliza quando houve troca
vantagem = simplicidade do algoritmo
desvantagem = lentidão
uso indicado = pequena coleção, "quase ordenada" e para demonstração didática
/*- versão melhorada- finaliza quando não houverem mais trocas a serem realizadas- não precisa percorrer o vetor inteiro*/#include<stdio.h>#define LEN 6intmain(){intv[LEN]={4,6,9,2,4,3};intn=1,troca=1;while(n<=LEN&&troca==1){troca=0;for(inti=0;i<LEN-1;i++){if(v[i]>v[i+1]){intaux=v[i];v[i]=v[i+1];v[i+1]=aux;troca=1;}}++n;}for(inti=0;i<LEN;i++){printf(" %d ",v[i]);}}
O algoritmo QuickSort funciona escolhendo um elemento chamado pivô e, em seguida, reorganizando a lista de tal forma que todos os elementos menores que o pivô fiquem à sua esquerda e todos os elementos maiores fiquem à sua direita. Após essa divisão, o pivô está na posição correta. Esse processo é recursivamente repetido para as sublistas à esquerda e à direita do pivô até que a lista inteira esteja ordenada.
Escolha do pivô = Selecionar um elemento da lista como pivô. Pode ser o primeiro, último, um elemento aleatório ou a mediana
Particionamento = Reorganizar a lista de modo que todos os elementos menores que o pivô estejam antes dele e todos os elementos maiores estejam depois.
Recursão = Aplicar o QuickSort recursivamente às sublistas à esquerda e à direita do pivô
Condição de parada = quando a sublista tiver 0 ou 1 elemento, ela está automaticamente ordenada