Comparação entre os métodos de ordenação shellsort e mergeshort

336 palavras 2 páginas
Comparação entre os métodos de ordenação QuickSort e MergeShort
Para a comparação foi utilizado os seguintes algoritmos escritos em C#:
Algoritmo QuickSort: static class QuickSort { public static void Ordenar(Int32[] vetor) { Ordenar(vetor, 0, vetor.Length - 1); }

private static void Ordenar(Int32[] vetor, Int32 inicio, Int32 fim) { if (inicio < fim) { var posicaoPivo = Separar(vetor, inicio, fim); Ordenar(vetor, inicio, posicaoPivo - 1); Ordenar(vetor, posicaoPivo + 1, fim); } }

private static Int32 Separar(Int32[] vetor, Int32 inicio, Int32 fim) { var pivo = vetor[inicio]; var i = inicio + 1; var f = fim; while (i <= f) { if (vetor[i] <= pivo) i++; else if (pivo < vetor[f]) f--; else { int troca = vetor[i]; vetor[i] = vetor[f]; vetor[f] = troca; i++; f--; } } vetor[inicio] = vetor[f]; vetor[f] = pivo; return f; } }
Algoritmo MergeSort: public class MergeSort { public Int32[] vetor; private Int32 numElemen;

public void Merge_sort(Int32[] valores) { vetor = valores; numElemen = valores.Length; mergesort(0, numElemen - 1); } private void mergesort(Int32 inicio, Int32 fim) { if (inicio < fim) { Int32 meio = (inicio + fim) / 2; mergesort(inicio, meio); mergesort(meio + 1, fim); Juncao(inicio, meio, fim);

Relacionados