Strand sort: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Linha 1:
{{em tradução}}
 
{{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.
The strand sort algorithm is [[Big-O notation|O]](''n'' sqrt ''n'') in the average case. In the best case (a list which is already sorted) the algorithm is linear, or O(''n'').
In the worst case (a list which is sorted in reverse order) the algorithm is O(''n''<sup>2</sup>).
 
Strand sort is most useful for data which is stored in a linked list, due to the frequent insertions and removals of data. Using another data structure, such as an array, would greatly increase the running time and complexity of the algorithm due to lengthy insertions and deletions. Strand sort is also useful for data which already has large amounts of sorted data, because such data can be removed in a single strand.
 
-->
 
== Exemplo ==