Ordenação

 

Para continuar nosso estudo sobre complexidade, consideremos o problema de ordenar um vetor, i.e. dado o vetor v(1:n), não ordenado, produzir o vetor w(1:n) contendo os mesmos elementos de v |
w(1) <= w(2) <= ... <= w(n).



EP4:


  1. Use a funcão merge como base para um algoritmo de ordenação tipo divida-e-conquiste recursivamente com complexidade c(n) = O(n*log2(n)).
  2. Implemente-o como uma função w = mergesr(v).
  3. Dê uma versão iterativa mergesi(v). Use as linguagens Matlab, Scilab, QBasic ou C.
  4. Mostre que a complexidade da ordenação pelo algoritmo bolha é (no Pior Caso) da ordem de n2.
    Mostre que no Melhor Caso (j previamente ordenado) bubbles(v) tem complexidade O(n).
  5. Faça experimentos computacionais para "medir" a complexidade esperada da função bubbles( ), i.e. E(c(n)) para um argumento v aleatório da forma
    u=1:n, r=rand(1,n), v=a*u+r, a em [-1,1].