antes de falarmos sobre os metodos devemos saber antes o que é metodos de ordenação.
O que é metodos de ordenação:
Resumindo são formas de organizar dados de forma mais eficiente, depedendo de criterios as quais quer seguir.
Nessa pagina veremos os metodos Bubble Sort e Quick Sort.
Bubble Sort:
Definição:
é um algoritmo de ordenação que pode ser aplicado em Vetores e Listas dinâmicas, o objetivo é ordenar valores de forma decrescente ou crescente.O algoritmo compara dois os valores na posição x e na posição x+1, pegando um exemplo para facilitar o entendimento um caso de ordenação crescente,
como exemplo ele pegara dois valores, se o valor da posição (x+1) for menor que o valor na posição (x) ele trocara os valores de posição se não fará nenhuma ação.
Imagens de um exemplo a seguir:

imagen original
A ideia em geral da organização por bolha é flutuar o maior elemento para ultima posição
Curiosidade:
O nome de bolha ou bubble sort foi dada pela imagem usada para descreve-lo: os elementos maiores são mais leves, e sobem como bolhas até suas posições corretas.W. Celes e J. L. Rangel
Codigo:
Caso queira saber como é o código aqui ta um exemplo em liguagem c++:void bubble_sort( int vetor [] , int n ) { int k, j, aux; for( k = 1 ; k < n; k++) { for( j = 0 ; j < n - 1 ; j++){ if(vetor[j] > vetor[j + 1]){ aux = vetor[j] ; vetor [j] = vetor[j + 1]; vetor[j + 1] = aux; } } } }
Logo abaixo segue um video feito pelos Alunos de Engenharia de Computação da UEPG sobre Bublle Sort: ps:caso esteja indisponivel é só clicar no centro da tela, onde está escrito "assistir no youtube"
Quick Sort
Definição:
É um Algoritmo de ordenação por divisão e conquista. A logica desse metodo é que ele escolhe um pivô no vetor a ordenar e divide em dois subvetores, um subvetor com valores menores que o pivo alocando para a esquerda e os valores maiores no subvetor da direita. apos essa divisão o algoritmo passa a fazer a mesma coisa nesses grupos(escolhendo um novo pivo e dividindo-se e assim por diante nos seguinte subsgrupos). O processo só acaba quando cada grupo contenha um valor, e no final do processo os grupos estaram alinhados de forma ordenada. Exemplo na imagem a baixo:
imagem original
Código:
Em linguagem c++
/* Algoritmo para QuickSort */
int partition(int p,int r){ int aux,piv,i,j; piv = Vector[p]; i = p - 1; j = r + 1 ; while(1){ do j = j - 1; while(Vector[j] > piv); do i = i + 1; while(Vector[i] < piv); if(i < j){ aux = Vector[i]; Vector[i] = Vector[j]; Vector[j] = aux; } else return j; } } void QuickSort(int p,int r){ // primeiro elemento e ultimo elemento int q; if(p < r){ q = partition(p,r); QuickSort(p,q); QuickSort(q + 1,r); } }
Logo abaixo segue um video feito pelos Alunos de Engenharia de Computação da UEPG sobre QuickSort : ps:caso esteja indisponivel é só clicar no centro da tela, onde está escrito "assistir no youtube"
Codigo usado na Aula de Estrutura de Dados
Qual dos dois é o melhor a se usar?
fazendo um teste com um vetor de 10.000 elementos coletamos esses dados

Analizando os piores caso dos Metodos bubble (decrescente) e QuickSort(sendo o Pivo estando no começo do vetor ou no final) vimos que o QuickSort ele faz menos trocas do que o bubble, além de ter sido mais rápido, pois isso se deve que o Bublle Sort é um Algoritmo Θ(n^2) em todos os casos, sendo que no QuickSort só é o pior caso Θ(n^2) e seus casos Melhor / Medio são de θ(n log n) logo podemos concluir que o QuickSort é o melhor , mas tem um problema, o QuickSort precisa de mais Processamento do que o bubble para realizar o seu metodo, se não a maquina em que está sendo utilizado não conseguira realizar o metodo QuickSort.
teste com 100.000:

visto como anteriormente o teste em que foi realizado não tinha processador suficiente para realizar o metodo QuickSort.
Então use esses metodos conforme a sua necessidade.