Existem vários algoritmos para ordenar um vetor numérico. Entre esses algoritmos, podemos citar:
• Ordenação por troca:
– BubbleSort (método da bolha)
– QuickSort (método da troca e partição)
• Ordenação por inserção
– InsertionSort (método da inserção direta)
– BinaryInsertionSort (método da inserção direta binária)
• Ordenação por seleção
– SelectionSort (método da seleção direta)
– HeapSort (método da seleção em árvore)
• Outros métodos:
– MergeSort (método da intercalação)
– BucketSort (método da distribuição de chave)
Alguns desses algoritmos são simples de implementar, mas são lentos. O código abaixo usa o comando "max" do Scilab que localiza o maior valor dentro de um vetor e guarda esse valor em um novo vetor, logo o novo vetor já nasce ordenado (do maior para o menor). Esse método é muito mais eficiente que o método BubbleSort, por exemplo. Código:
NN = 1000; x = round(1000*rand(1,NN,'u')); //disp(x); ===> vetor desordenado disp('ord. por maximo'); xo = x; for k=1:max(size(x)) [aa,bb]=max(x); xo(k) = aa; x(bb)=-1; end //disp(xo); ===> vetor ordenado
Nenhum comentário:
Postar um comentário