Strand sort: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
nova página: {{em tradução}} {{Info/Algoritmo |classe =Algoritmo de ordenação |imagem = |estrutura =Array, Listas ligadas |data ...
 
Linha 16:
O '''Strand sort''' é um [[algoritmo de ordenação]]. Ele trabalha por repetidas vezes extraindo sublistas ordenadas da lista a ser classificada e mesclando-as com um array resultado. Cada iteração através da lista não-ordenada extrai uma série de elementos que já estavam ordenados, e mescla as séries juntas.
 
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.
<!--
 
<!--
The name of the algorithm comes from the "strands" of sorted data within the unsorted list which are removed one at a time. É um algoritmo de [[ordenação por comparação]] due to its use of comparisons when removing strands and when merging them into the sorted array.
 
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'').
Linha 24:
 
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 ==
Linha 45 ⟶ 47:
|}
 
# Analisar a lista não-ordenada uma vez, tirando quaisquer números ordenados de forma ascendente.
#Parse the Unsorted List once, taking out any ascending (sorted) numbers.
# A sublista ordenada é, para a primeira iteração, inserida na lista ordenada vazia.
#The (sorted) Sublist is, for the first iteration, pushed onto the empty sorted list.
# Analisar a lista não-ordenada novamente e novamente tirando números ordenados relativamente.
#Parse the Unsorted List again, again taking out relatively sorted numbers.
# Desde que a lista ordenada está agora populada, mesclar as sublistas na lista ordenada.
#Since the Sorted List is now populated, merge the Sublist into the Sorted List.
# Repetir os passos 3-4 até que tanto a lista não-ordenada e as sublistas estejam vazias.
#Repeat steps 3-4 until both the Unsorted List and Sublist are empty.
 
-->
 
== Algoritmo ==