Programadores que mudar de PC e desenvolvimento web em codificação para dispositivos móveis ou sistemas embarcados descobrir que mais tempo é gasto a seleção e codificação de suas próprias estruturas de dados e algoritmos. Com menos memória e armazenamento de dados limitado, não há espaço para bibliotecas ou estruturas pré-construídos . Portanto, para aqueles que precisam escrever suas próprias rotinas de classificação , aqui estão algumas considerações sobre como escolher o bubble sort humilde . Background Fotografia de
O bubble sort é um algoritmo simples que ordena uma lista de itens na memória. Dada uma matriz , o código compara repetidamente cada par de itens adjacentes e troca -los, se eles não estão em ordem. O processo se repete até que não ocorram mais swaps . Se fosse possível visualizar a matriz , enquanto a espécie está em andamento, os baixos valores seriam " bolha " para o topo , enquanto os grandes valores que vão para o fundo . Aqui está o código relevante em Visual Basic 2010 :
Enquanto troca = True
troca = False
For i = 0 To tbl.length - 2
Se tbl ( i) > tbl (i + 1) Então
tmp = tbl ( i)
tbl (i) = tbl (i + 1)
tbl (i + 1) = tmp
troca = True End If
Próxima
End While
Quando escolher o Bubble Sort
Este algoritmo tem várias vantagens. É simples de escrever , fácil de entender e leva apenas algumas linhas de código. Os dados são ordenados no lugar para que haja pouca sobrecarga de memória e, uma vez ordenados , os dados estão na memória, pronto para processamento. A maior desvantagem é a quantidade de tempo que leva para classificar . O tempo médio aumenta quase exponencialmente à medida que o número de elementos da tabela aumentar. Dez vezes o número de itens leva quase uma centena de vezes mais tempo para classificar.
Outros tipos de matriz
Algoritmos de ordenação variam em complexidade , velocidade e sobrecarga . O bubble sort é o menos complexo, mas também uma das mais lentas . Outros tipos baseadas em matrizes , como o tipo de inserção e troca de tipo são um pouco mais rápido, mas levam mais de código ( veja as referências abaixo ) . A principal vantagem do tipo baseado em matriz são de que eles usam o mínimo de código e ter o mínimo de memória de trabalho. Considere esses tipos de matrizes simples, com menos de algumas centenas de itens.
Complexo Ordenar Algoritmos
conjuntos de dados maiores requerem um código mais complexo e mais memória. A classificação rápida e pilha tipo tanto dividir e copiar os conjuntos de dados para otimizar o número de comparações . A classificação rápida divide continuamente a lista , em seguida, reagrupa -lo em ordem de classificação. As cópias pilha classificar os dados em uma estrutura de árvore , em seguida, percorre a árvore para copiar os dados de volta em ordem . Ambos são rápidos e eficientes , mas ter mais código e armazenamento muito mais trabalho. Escolha estes algoritmos para grandes conjuntos de dados.