ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena...

25
Merg Ordena inicialmente su ou 2 e recursivamente ordenar o vetor total de Baseia-se no merge de gesort ub-vetores de tamanho 1 dobra esse tamanho até e tamanho N e dois vetores ordenados

Transcript of ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena...

Page 1: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Mergesort

� Ordena inicialmente subou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de tamanho N

� Baseia-se no merge de dois vetores ordenadosBaseia-se no merge de dois vetores ordenados

Mergesort

Ordena inicialmente sub-vetores de tamanho 1 ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de tamanho N

se no merge de dois vetores ordenadosse no merge de dois vetores ordenados

Page 2: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Merge de dois vetores ordenados

� Dados dois vetores V1 e V2, já ordenados, o merge cria um outro vetor V ordenado com os elementos de V1 e V2

local i,j,k = 1,1,1

for k=1,#v1+#v2 do

if j>#v2 then v[k]=v1[i]; i=i+1

else if i>#v1 then v[k]=v2[j]; j=j+1

else if v1[i]<=v2[j] then

else v[k]=v2[j]; j=j+1 end

end

Merge de dois vetores ordenados

Dados dois vetores V1 e V2, já ordenados, o cria um outro vetor V ordenado com os

v[k]=v1[i]; i=i+1

v[k]=v2[j]; j=j+1

then v[k]=v1[i]; i=i+1

end

Page 3: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Merge de dois vetores

1 3V1=

i

j

5 7V2=

V= 1

k

Merge de dois vetores

3 7 18 20

7 8 11 13

Page 4: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Merge de dois vetores

1 3V1=

i

j

5 7V2=

V= 1 3

k

Merge de dois vetores

3 7 18 20

7 8 11 13

Page 5: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Merge de dois vetores

1 3V1=j

5 7V2=

V= 1 3 5

k

Merge de dois vetores

3 7 18 20

i

7 8 11 13

Page 6: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Merge de dois vetores

1 3V1=j

5 7V2=

V= 1 3 5 7

k

Merge de dois vetores

3 7 18 20

i

7 8 11 13

Page 7: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Merge de dois vetores

1 3V1=j

5 7V2=

V= 1 3 5 7

Merge de dois vetores

3 7 18 20

i

7 8 11 13

7

k

Page 8: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Merge de dois vetores

1 3V1=

5 7V2=

V= 1 3 5 7

Merge de dois vetores

3 7 18 20

i

j

7 8 11 13

7 8

k

Page 9: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Merge de dois vetores

1 3V1=

5 7V2=

V= 1 3 5 7

Merge de dois vetores

3 7 18 20

i

j

7 8 11 13

7 8 11

k

Page 10: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Merge de dois vetores

1 3V1=

5 7V2=

V= 1 3 5 7

Merge de dois vetores

3 7 18 20

i

j

7 8 11 13

7 8 11 13

k

Page 11: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Merge de dois vetores

1 3V1=

5 7V2=

V= 1 3 5 7

Merge de dois vetores

3 7 18 20

i

j

7 8 11 13

7 8 11 13 18

k

Page 12: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Merge de dois vetores

1 3V1=

5 7V2=

V= 1 3 5 7

Merge de dois vetores

3 7 18 20

i

j

7 8 11 13

7 8 11 13 18 20

k

Page 13: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Merge de dois vetores

1 3V1=

5 7V2=

V= 1 3 5 7

Merge de dois vetores

3 7 18 20

i

j

7 8 11 13

7 8 11 13 18 20

k

Page 14: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Mergesort

1 9 8 5 3 7 4

Mergesort

1 9 8 5 3 7 4

Page 15: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Mergesort

1 9 8 5 3 7 4

1 9 8 5

Mergesort

1 9 8 5 3 7 4

3 7 4

Page 16: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Mergesort

1 9 8 5 3 7 4

1 9 8 5

1 9 8 51 9 8 5

Mergesort

1 9 8 5 3 7 4

3 7 4

Page 17: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Mergesort

1 9 8 5 3 7 4

1 9 8 5

1 9 5 81 9 5 8

Mergesort

1 9 8 5 3 7 4

3 7 4

Page 18: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Mergesort

1 9 8 5 3 7 4

1 5 8 9

Mergesort

1 9 8 5 3 7 4

3 7 4

Page 19: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Mergesort

1 9 8 5 3 7 4

1 5 8 9

Mergesort

1 9 8 5 3 7 4

3 7 4

Page 20: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Mergesort

1 9 8 5 3 7 4

1 5 8 9

Mergesort

1 9 8 5 3 7 4

3 7 4

3 7 43 7 4

Page 21: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Mergesort

1 9 8 5 3 7 4

1 5 8 9

Mergesort

1 9 8 5 3 7 4

3 7 4

3 7 43 7 4

Page 22: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Mergesort

1 9 8 5 3 7 4

1 5 8 9

Mergesort

1 9 8 5 3 7 4

3 4 7

Page 23: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Mergesort

1 3 4 5 7 8 9

Mergesort

1 3 4 5 7 8 9

Page 24: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Mergesort -

1 9 8 5 3 7 4

1 9 8 5

1 9 8 51 9 8 5

- operações

1 9 8 5 3 7 4

3 7 4

3 7 43 7 4

Page 25: ed2 mergesort [Modo de Compatibilidade]csalles/ed2/ed203_mergesort.pdf · Mergesort Ordena inicialmente sub ou 2 e recursivamente dobra esse tamanho até ordenar o vetor total de

Mergesort -

1 9 8 5 3 7 4

1 9 8 5

1 9 8 51 9 8 5

Total de operações:N * log

N operações em cada nível

- operações

1 9 8 5 3 7 4

3 7 4

3 7 4

log2 N

níveis

3 7 4

Total de operações:N * log

2 N

N operações em cada nível