PROCEDURE FazAlgo ( n : integer);
VAR i, j, k, x : integer;
BEGIN
x := 0;
FOR i := 1 TO n DO
FOR j := i + 1 TO n - 1 DO
FOR k := 1 TO j DO x := x + 1;
END;
Pesquisa(n);
IF n <= 1
THEN termine
ELSE BEGIN
ordena os n elementos;
{ de alguma forma isto permite descartar 1/3 dos }
{ elementos e fazer uma chamada recursiva no resto }
Pesquisa (2n/3);
END;
PROCEDURE Sort (VAR A: ARRAY[1..n] OF integer; i, j: integer);
{ n uma potencia de 3 }
BEGIN
IF i < j
THEN BEGIN
m := (i + j - 1)/3;
Sort (A,i,m);
Sort (A,m+1,j);
Merge (A,i,m,j);
{ Merge intercala A[i..m] e A[m+1..j] em A[i..j] a um custo n}
END;
END;
PROCEDURE D ( VAR L );
BEGIN
IF |L| > 1
THEN BEGIN
Divide L em 3 partes iguais L1, L2, L3 com custo
de |L| * |L| * |L| passos; {|L| ao cubo}
D(L1); D(L2); D(L3);
END;
END;
O objetivo deste trabalho é realizar um estudo do algoritmo Shellsort de ordenação interna (Ziviani, 2004).
Utilize arquivos de diferentes tamanhos com chaves geradas randomicamente.
Use o programa Permut.c para obter uma
permutação randômica de
valores (Ziviani, 2004, pag. 427).
Repita
cada experimento algumas vezes e obtenha a média para cada medida
de complexidade.
This document was generated using the LaTeX2HTML translator Version 2002-2-1 (1.71)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -split 0 pa04tp1
The translation was initiated by Nivio Ziviani on 2004-07-12