Algoritmos de Ordenação
Para melhor escolha de um método de ordenação é preciso saber sobre a natureza dos dados que serão processados. Entre elas destacam-se duas: Tempo de acesso a um elemento e a possibilidade de acesso direto a um elemento.
O tempo de acesso a um elemento é a complexidade necessária para acessar um elemento em uma estrutura; Ex: Uma estante de livros com seus títulos bem visíveis.
A possibilidade de acesso direto é a capacidade ou impossibilidade de acessar um elemento diretamente na estrutura. Ex: Uma pilha de livros dentro de uma caixa, onde precisamos tirar um a um para saber qual a sua natureza.
Às vezes, a necessidade de ordenar informações é inerente a uma aplicação. Por exemplo, para preparar os extratos de clientes, os bancos precisam ordenar os cheques pelo número do cheque.
2 BUBBLE SORT
O bubble sort, ou ordenação por flutuação (literalmente "por bolha"), é um algoritmo de ordenação dos mais simples. A ideia é comparar dois elementos e trocá-los de posição, até que os elementos de maior valor sejam levados para o final do vetor. O processo continua até a ordenação total do vetor lembrando a forma como as bolhas em um tanque de água procuram seu próprio nível, e disso vem o nome do algoritmo.
A principal vantagem desse algoritmo é que sua implementação é fácil e conhecida. Além disso, no bubble sort, os elementos são trocados de lugar sem utilizar armazenamento temporário, o que faz o requerimento de espaço ser mínimo. A principal desvantagem é o fato de que não apresenta bons resultados quando a lista contém muitos itens
A complexidade desse algoritmo é de ordem quadrática (O(n²)). Por isso, ele não é recomendado para programas que precisem de velocidade e operem com quantidade elevada de dados. Também é necessária uma condição de parada, geralmente uma flag ou variável que armazena se houve troca ou não na passagem. Se uma passagem chega ao seu final sem troca, a ordenação cessa.
Melhor caso: Vetor