Strand sort: diferenças entre revisões
Conteúdo apagado Conteúdo adicionado
Linha 1:
{{Info/Algoritmo
|classe =[[Algoritmo de ordenação]]
Linha 18 ⟶ 16:
O nome do algoritmo vem de "vertentes" de dados ordenados dentro da lista não-ordenada que são removidos um de cada vez. É um algoritmo de [[ordenação por comparação]] devido ao seu uso de comparações, quando remove vertentes e ao mesclar-los para o array ordenado.
O algoritmo de ordenação strand é [[grande-O|O ]](''n'' sqrt ''n'') no caso médio. No melhor caso (a lista que já está classificado), o algoritmo é linear, ou O(''n''). Na pior das hipóteses (a lista que está ordenada em ordem inversa), o algoritmo é O (''n''<sup>2</sup>).
O Strand sort é mais útil para dados que são armazenados em uma lista vinculada, devido às freqüentes inserções e remoções de dados. Usando uma outra estrutura de dados, como um array, se aumentaa consideravelmente o tempo de execução e a complexidade do algoritmo, devido às longas inserções e deleções. O Strand sort também é útil para dados que já possuem grandes quantidades de dados ordenados, pois esses dados podem ser removidos em uma única vertente.
== Exemplo ==
|