83
GBC034 - Ordena¸c˜ ao interna Quicksort Marcelo K. Albertini 26 de Junho de 2013

GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

GBC034 - Ordenacao interna

Quicksort

Marcelo K. Albertini

26 de Junho de 2013

Page 2: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Aula de hoje

Nesta aula veremos:

Quicksort

2/14

Page 3: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Quicksort

Quicksort

Tony Hoare, Moscou, Uniao Sovietica, 1960

Aplicacao original: ordenar dicionario russo-ingles

3/14

Page 4: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Pseudo-codigo: quicksort simplificado

1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4

4/14

Page 5: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Pseudo-codigo: quicksort simplificado

1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )

4/14

Page 6: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Pseudo-codigo: quicksort simplificado

1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]

4/14

Page 7: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Pseudo-codigo: quicksort simplificado

1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]9 v e t o rMa i o r e s = new i n t [ tamanho ( v e t o r ) ]

4/14

Page 8: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Pseudo-codigo: quicksort simplificado

1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]9 v e t o rMa i o r e s = new i n t [ tamanho ( v e t o r ) ]

1011 f o r ( x i n v e t o r )

4/14

Page 9: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Pseudo-codigo: quicksort simplificado

1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]9 v e t o rMa i o r e s = new i n t [ tamanho ( v e t o r ) ]

1011 f o r ( x i n v e t o r ) 12 i f ( x <= p i v o t )

4/14

Page 10: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Pseudo-codigo: quicksort simplificado

1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]9 v e t o rMa i o r e s = new i n t [ tamanho ( v e t o r ) ]

1011 f o r ( x i n v e t o r ) 12 i f ( x <= p i v o t )13 inse reNoF im ( x , ve to rMenore s )

4/14

Page 11: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Pseudo-codigo: quicksort simplificado

1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]9 v e t o rMa i o r e s = new i n t [ tamanho ( v e t o r ) ]

1011 f o r ( x i n v e t o r ) 12 i f ( x <= p i v o t )13 inse reNoF im ( x , ve to rMenore s )14 e l s e

4/14

Page 12: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Pseudo-codigo: quicksort simplificado

1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]9 v e t o rMa i o r e s = new i n t [ tamanho ( v e t o r ) ]

1011 f o r ( x i n v e t o r ) 12 i f ( x <= p i v o t )13 inse reNoF im ( x , ve to rMenore s )14 e l s e15 inse reNoF im ( x , v e t o rMa i o r e s )

4/14

Page 13: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Pseudo-codigo: quicksort simplificado

1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]9 v e t o rMa i o r e s = new i n t [ tamanho ( v e t o r ) ]

1011 f o r ( x i n v e t o r ) 12 i f ( x <= p i v o t )13 inse reNoF im ( x , ve to rMenore s )14 e l s e15 inse reNoF im ( x , v e t o rMa i o r e s )16

4/14

Page 14: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Pseudo-codigo: quicksort simplificado

1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]9 v e t o rMa i o r e s = new i n t [ tamanho ( v e t o r ) ]

1011 f o r ( x i n v e t o r ) 12 i f ( x <= p i v o t )13 inse reNoF im ( x , ve to rMenore s )14 e l s e15 inse reNoF im ( x , v e t o rMa i o r e s )16 17 q u i c k s o r t ( ve to rMenore s ) // o rdena r os menores18

4/14

Page 15: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Pseudo-codigo: quicksort simplificado

1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]9 v e t o rMa i o r e s = new i n t [ tamanho ( v e t o r ) ]

1011 f o r ( x i n v e t o r ) 12 i f ( x <= p i v o t )13 inse reNoF im ( x , ve to rMenore s )14 e l s e15 inse reNoF im ( x , v e t o rMa i o r e s )16 17 q u i c k s o r t ( ve to rMenore s ) // o rdena r os menores18 q u i c k s o r t ( v e t o rMa i o r e s ) // o rdena r os ma io r e s19

4/14

Page 16: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Pseudo-codigo: quicksort simplificado

1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]9 v e t o rMa i o r e s = new i n t [ tamanho ( v e t o r ) ]

1011 f o r ( x i n v e t o r ) 12 i f ( x <= p i v o t )13 inse reNoF im ( x , ve to rMenore s )14 e l s e15 inse reNoF im ( x , v e t o rMa i o r e s )16 17 q u i c k s o r t ( ve to rMenore s ) // o rdena r os menores18 q u i c k s o r t ( v e t o rMa i o r e s ) // o rdena r os ma io r e s19 r e t u r n ( j u n t a r ( vetorMenores , p i vo t , v e t o rMa i o r e s ) ) ;20

4/14

Page 17: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Escolha do pivot

1 p i v o t = e s c o l h e r E r emov e r ( v e t o r )

custo do algoritmo depende da escolha do pivot

possibilidades

o primeiro/ultimo elementoaleatorioo elemento do meioa mediana entre o primeiro, meio e ultimo

5/14

Page 18: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento

6 7 5 5 2 0 6 2 3 7

6/14

Page 19: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento

6 7 5 5 2 0 6 2 3 7

5 5 2 0 6 2 3 6 7 7

6/14

Page 20: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento

6 7 5 5 2 0 6 2 3 7

5 5 2 0 6 2 3 6 7 7

3 5 2 0 2 5 6

6/14

Page 21: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento

6 7 5 5 2 0 6 2 3 7

5 5 2 0 6 2 3 6 7 7

3 5 2 0 2 5 6

2 2 0 3 5

6/14

Page 22: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento

6 7 5 5 2 0 6 2 3 7

5 5 2 0 6 2 3 6 7 7

3 5 2 0 2 5 6

2 2 0 3 5

0 2 2

6/14

Page 23: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento

6 7 5 5 2 0 6 2 3 7

5 5 2 0 6 2 3 6 7 7

3 5 2 0 2 5 6

2 2 0 3 5

0 2 2

0 2

6/14

Page 24: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento

6 7 5 5 2 0 6 2 3 7

5 5 2 0 6 2 3 6 7 7

3 5 2 0 2 5 6

2 2 0 3 5

0 2 2

0 2

0 2

6/14

Page 25: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento

6 7 5 5 2 0 6 2 3 7

5 5 2 0 6 2 3 6 7 7

3 5 2 0 2 5 6

2 2 0 3 5

0 2 2

0 2

0 2

0 2 2

6/14

Page 26: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento

6 7 5 5 2 0 6 2 3 7

5 5 2 0 6 2 3 6 7 7

3 5 2 0 2 5 6

2 2 0 3 5

0 2 2

0 2

0 2

0 2 2

0 2 2 3 5

6/14

Page 27: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento

6 7 5 5 2 0 6 2 3 7

5 5 2 0 6 2 3 6 7 7

3 5 2 0 2 5 6

2 2 0 3 5

0 2 2

0 2

0 2

0 2 2

0 2 2 3 5

0 2 2 3 5 5 6

6/14

Page 28: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento

6 7 5 5 2 0 6 2 3 7

5 5 2 0 6 2 3 6 7 7

3 5 2 0 2 5 6

2 2 0 3 5

0 2 2

0 2

0 2

0 2 2

0 2 2 3 5

0 2 2 3 5 5 6

7 7

6/14

Page 29: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento

6 7 5 5 2 0 6 2 3 7

5 5 2 0 6 2 3 6 7 7

3 5 2 0 2 5 6

2 2 0 3 5

0 2 2

0 2

0 2

0 2 2

0 2 2 3 5

0 2 2 3 5 5 6

7 7

7 7

6/14

Page 30: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento

6 7 5 5 2 0 6 2 3 7

5 5 2 0 6 2 3 6 7 7

3 5 2 0 2 5 6

2 2 0 3 5

0 2 2

0 2

0 2

0 2 2

0 2 2 3 5

0 2 2 3 5 5 6

7 7

7 7

0 2 2 3 5 5 6 6 7 7

6/14

Page 31: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento

6 7 5 5 2 0 6 2 3 7

5 5 2 0 6 2 3 6 7 7

3 5 2 0 2 5 6

2 2 0 3 5

0 2 2

0 2

0 2

0 2 2

0 2 2 3 5

0 2 2 3 5 5 6

7 7

7 7

0 2 2 3 5 5 6 6 7 7

6/14

Page 32: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento – degeneracao

1 2 4 4 5 6 7 8 9

7/14

Page 33: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento – degeneracao

1 2 4 4 5 6 7 8 9

1 9 2 4 4 5 6 7 8

7/14

Page 34: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento – degeneracao

1 2 4 4 5 6 7 8 9

1 9 2 4 4 5 6 7 8

8 2 4 4 5 6 7 9

7/14

Page 35: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento – degeneracao

1 2 4 4 5 6 7 8 9

1 9 2 4 4 5 6 7 8

8 2 4 4 5 6 7 9

7 2 4 4 5 6 8

7/14

Page 36: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento – degeneracao

1 2 4 4 5 6 7 8 9

1 9 2 4 4 5 6 7 8

8 2 4 4 5 6 7 9

7 2 4 4 5 6 8

6 2 4 4 5 7

7/14

Page 37: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento – degeneracao

1 2 4 4 5 6 7 8 9

1 9 2 4 4 5 6 7 8

8 2 4 4 5 6 7 9

7 2 4 4 5 6 8

6 2 4 4 5 7

5 2 4 4 6

7/14

Page 38: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento – degeneracao

1 2 4 4 5 6 7 8 9

1 9 2 4 4 5 6 7 8

8 2 4 4 5 6 7 9

7 2 4 4 5 6 8

6 2 4 4 5 7

5 2 4 4 6

4 2 4 5

7/14

Page 39: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento – degeneracao

1 2 4 4 5 6 7 8 9

1 9 2 4 4 5 6 7 8

8 2 4 4 5 6 7 9

7 2 4 4 5 6 8

6 2 4 4 5 7

5 2 4 4 6

4 2 4 5

4 2 4

7/14

Page 40: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento – degeneracao

1 2 4 4 5 6 7 8 9

1 9 2 4 4 5 6 7 8

8 2 4 4 5 6 7 9

7 2 4 4 5 6 8

6 2 4 4 5 7

5 2 4 4 6

4 2 4 5

4 2 4

2 4

7/14

Page 41: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento – degeneracao

1 2 4 4 5 6 7 8 9

1 9 2 4 4 5 6 7 8

8 2 4 4 5 6 7 9

7 2 4 4 5 6 8

6 2 4 4 5 7

5 2 4 4 6

4 2 4 5

4 2 4

2 4

2 4

7/14

Page 42: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento – degeneracao

1 2 4 4 5 6 7 8 9

1 9 2 4 4 5 6 7 8

8 2 4 4 5 6 7 9

7 2 4 4 5 6 8

6 2 4 4 5 7

5 2 4 4 6

4 2 4 5

4 2 4

2 4

2 4

2 4 4

7/14

Page 43: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento – degeneracao

1 2 4 4 5 6 7 8 9

1 9 2 4 4 5 6 7 8

8 2 4 4 5 6 7 9

7 2 4 4 5 6 8

6 2 4 4 5 7

5 2 4 4 6

4 2 4 5

4 2 4

2 4

2 4

2 4 4

2 4 4 5

7/14

Page 44: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento – degeneracao

1 2 4 4 5 6 7 8 9

1 9 2 4 4 5 6 7 8

8 2 4 4 5 6 7 9

7 2 4 4 5 6 8

6 2 4 4 5 7

5 2 4 4 6

4 2 4 5

4 2 4

2 4

2 4

2 4 4

2 4 4 5

2 4 4 5 6

7/14

Page 45: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento – degeneracao

1 2 4 4 5 6 7 8 9

1 9 2 4 4 5 6 7 8

8 2 4 4 5 6 7 9

7 2 4 4 5 6 8

6 2 4 4 5 7

5 2 4 4 6

4 2 4 5

4 2 4

2 4

2 4

2 4 4

2 4 4 5

2 4 4 5 6

2 4 4 5 6 7

7/14

Page 46: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento – degeneracao

1 2 4 4 5 6 7 8 9

1 9 2 4 4 5 6 7 8

8 2 4 4 5 6 7 9

7 2 4 4 5 6 8

6 2 4 4 5 7

5 2 4 4 6

4 2 4 5

4 2 4

2 4

2 4

2 4 4

2 4 4 5

2 4 4 5 6

2 4 4 5 6 7

2 4 4 5 6 7 8

7/14

Page 47: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento – degeneracao

1 2 4 4 5 6 7 8 9

1 9 2 4 4 5 6 7 8

8 2 4 4 5 6 7 9

7 2 4 4 5 6 8

6 2 4 4 5 7

5 2 4 4 6

4 2 4 5

4 2 4

2 4

2 4

2 4 4

2 4 4 5

2 4 4 5 6

2 4 4 5 6 7

2 4 4 5 6 7 8

2 4 4 5 6 7 8 9

7/14

Page 48: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento – degeneracao

1 2 4 4 5 6 7 8 9

1 9 2 4 4 5 6 7 8

8 2 4 4 5 6 7 9

7 2 4 4 5 6 8

6 2 4 4 5 7

5 2 4 4 6

4 2 4 5

4 2 4

2 4

2 4

2 4 4

2 4 4 5

2 4 4 5 6

2 4 4 5 6 7

2 4 4 5 6 7 8

2 4 4 5 6 7 8 9

1 2 4 4 5 6 7 8 9

7/14

Page 49: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot – o primeiro elemento – degeneracao

1 2 4 4 5 6 7 8 9

1 9 2 4 4 5 6 7 8

8 2 4 4 5 6 7 9

7 2 4 4 5 6 8

6 2 4 4 5 7

5 2 4 4 6

4 2 4 5

4 2 4

2 4

2 4

2 4 4

2 4 4 5

2 4 4 5 6

2 4 4 5 6 7

2 4 4 5 6 7 8

2 4 4 5 6 7 8 9

1 2 4 4 5 6 7 8 9

7/14

Page 50: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Pivot aleatorio

1 p u b l i c s t a t i c i n t e s c o l h e r P i v o t ( i n t [ ] v e t o r ) 23 Random s o r t e i o = new Random ( ) ;45 r e t u r n ( s o r t e i o . n e x t I n t ( v e t o r . l e n g t h ) ) ;6

8/14

Page 51: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot aleatorio evita degeneracao

1 2 4 4 5 6 7 8 9

9/14

Page 52: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot aleatorio evita degeneracao

1 2 4 4 5 6 7 8 9

1 2 4 4 5 6 7 9 8

9/14

Page 53: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot aleatorio evita degeneracao

1 2 4 4 5 6 7 8 9

1 2 4 4 5 6 7 9 8

1 2 6 4 4 5

9/14

Page 54: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot aleatorio evita degeneracao

1 2 4 4 5 6 7 8 9

1 2 4 4 5 6 7 9 8

1 2 6 4 4 5

4 4 5 6

9/14

Page 55: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot aleatorio evita degeneracao

1 2 4 4 5 6 7 8 9

1 2 4 4 5 6 7 9 8

1 2 6 4 4 5

4 4 5 6

4 4

9/14

Page 56: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot aleatorio evita degeneracao

1 2 4 4 5 6 7 8 9

1 2 4 4 5 6 7 9 8

1 2 6 4 4 5

4 4 5 6

4 4

4 4

9/14

Page 57: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot aleatorio evita degeneracao

1 2 4 4 5 6 7 8 9

1 2 4 4 5 6 7 9 8

1 2 6 4 4 5

4 4 5 6

4 4

4 4

4 4 5 6

9/14

Page 58: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot aleatorio evita degeneracao

1 2 4 4 5 6 7 8 9

1 2 4 4 5 6 7 9 8

1 2 6 4 4 5

4 4 5 6

4 4

4 4

4 4 5 6

1 2 4 4 5 6

9/14

Page 59: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot aleatorio evita degeneracao

1 2 4 4 5 6 7 8 9

1 2 4 4 5 6 7 9 8

1 2 6 4 4 5

4 4 5 6

4 4

4 4

4 4 5 6

1 2 4 4 5 6

8 9

9/14

Page 60: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot aleatorio evita degeneracao

1 2 4 4 5 6 7 8 9

1 2 4 4 5 6 7 9 8

1 2 6 4 4 5

4 4 5 6

4 4

4 4

4 4 5 6

1 2 4 4 5 6

8 9

8 9

9/14

Page 61: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot aleatorio evita degeneracao

1 2 4 4 5 6 7 8 9

1 2 4 4 5 6 7 9 8

1 2 6 4 4 5

4 4 5 6

4 4

4 4

4 4 5 6

1 2 4 4 5 6

8 9

8 9

1 2 4 4 5 6 7 8 9

9/14

Page 62: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot aleatorio evita degeneracao

1 2 4 4 5 6 7 8 9

1 2 4 4 5 6 7 9 8

1 2 6 4 4 5

4 4 5 6

4 4

4 4

4 4 5 6

1 2 4 4 5 6

8 9

8 9

1 2 4 4 5 6 7 8 9

9/14

Page 63: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Pivot mediana

1 p u b l i c s t a t i c i n t e s c o l h e rP i v o tMed i ana ( i n t [ ] v e t o r ) 23 i n t f im = ve t o r . l eng th −1;4 i n t meio = ( i n t ) v e t o r . l e n g t h /2 ;5 i n t comeco = 0 ;67 i f ( v e t o r [ f im ] > v e t o r [ meio ] ) 8 i f ( v e t o r [ meio ] > v e t o r [ comeco ] ) 9 r e t u r n ( meio ) ;

10 e l s e 11 r e t u r n ( comeco ) ;12 13 e l s e 14 i f ( v e t o r [ f im ] > v e t o r [ comeco ] ) 15 r e t u r n ( f im ) ;16 e l s e 17 r e t u r n ( comeco ) ;18 19 20

10/14

Page 64: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot mediana

1 2 4 4 5 6 7 8 9

11/14

Page 65: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot mediana

1 2 4 4 5 6 7 8 9

1 2 4 4 5 9 6 7 8

11/14

Page 66: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot mediana

1 2 4 4 5 6 7 8 9

1 2 4 4 5 9 6 7 8

1 2 4 4

11/14

Page 67: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot mediana

1 2 4 4 5 6 7 8 9

1 2 4 4 5 9 6 7 8

1 2 4 4

1 2 4

11/14

Page 68: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot mediana

1 2 4 4 5 6 7 8 9

1 2 4 4 5 9 6 7 8

1 2 4 4

1 2 4

1 2 4

11/14

Page 69: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot mediana

1 2 4 4 5 6 7 8 9

1 2 4 4 5 9 6 7 8

1 2 4 4

1 2 4

1 2 4

1 2 4 4

11/14

Page 70: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot mediana

1 2 4 4 5 6 7 8 9

1 2 4 4 5 9 6 7 8

1 2 4 4

1 2 4

1 2 4

1 2 4 4

8 6 7 9

11/14

Page 71: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot mediana

1 2 4 4 5 6 7 8 9

1 2 4 4 5 9 6 7 8

1 2 4 4

1 2 4

1 2 4

1 2 4 4

8 6 7 9

7 6 8

11/14

Page 72: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot mediana

1 2 4 4 5 6 7 8 9

1 2 4 4 5 9 6 7 8

1 2 4 4

1 2 4

1 2 4

1 2 4 4

8 6 7 9

7 6 8

6 7

11/14

Page 73: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot mediana

1 2 4 4 5 6 7 8 9

1 2 4 4 5 9 6 7 8

1 2 4 4

1 2 4

1 2 4

1 2 4 4

8 6 7 9

7 6 8

6 7

6 7

11/14

Page 74: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot mediana

1 2 4 4 5 6 7 8 9

1 2 4 4 5 9 6 7 8

1 2 4 4

1 2 4

1 2 4

1 2 4 4

8 6 7 9

7 6 8

6 7

6 7

6 7 8

11/14

Page 75: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot mediana

1 2 4 4 5 6 7 8 9

1 2 4 4 5 9 6 7 8

1 2 4 4

1 2 4

1 2 4

1 2 4 4

8 6 7 9

7 6 8

6 7

6 7

6 7 8

6 7 8 9

11/14

Page 76: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot mediana

1 2 4 4 5 6 7 8 9

1 2 4 4 5 9 6 7 8

1 2 4 4

1 2 4

1 2 4

1 2 4 4

8 6 7 9

7 6 8

6 7

6 7

6 7 8

6 7 8 9

1 2 4 4 5 6 7 8 9

11/14

Page 77: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Simulacao: pivot mediana

1 2 4 4 5 6 7 8 9

1 2 4 4 5 9 6 7 8

1 2 4 4

1 2 4

1 2 4

1 2 4 4

8 6 7 9

7 6 8

6 7

6 7

6 7 8

6 7 8 9

1 2 4 4 5 6 7 8 9

11/14

Page 78: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Pivot mediana: propriedades

“Implementing Quicksort programs”, Robert Sedgewick

12/14

Page 79: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Pivot mediana: propriedades

“Implementing Quicksort programs”, Robert Sedgewick

Estudos praticos sobre o Quicksort

12/14

Page 80: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Pivot mediana: propriedades

“Implementing Quicksort programs”, Robert Sedgewick

Estudos praticos sobre o Quicksort

Recomenda o uso de pivot mediana

12/14

Page 81: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Pivot mediana: propriedades

“Implementing Quicksort programs”, Robert Sedgewick

Estudos praticos sobre o Quicksort

Recomenda o uso de pivot mediana

Estatisticamente, o custo do Quicksort tende a ser menor paravetores maiores

12/14

Page 82: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Quicksort: versoes

Existem muitas versoes do Quicksort

Em geral eles atuam no vetor original para fazer as particoes

economia de uso de espaco

Existem muitas otimizacoes

“A origem de todo o mal e a otimizacao precoce”, DonaldKnuth

13/14

Page 83: GBC034 - Ordenação interna Quicksortalbertini/1sem2013/alg/aulas/aula07-ordenacao/… · Quicksort Quicksort Tony Hoare, Moscou, Uni˜ao Sovi´etica, 1960 Aplica¸c˜ao original:

Custo: Quicksort simplificado

Custo e complexidade

Melhor caso, notacao Ω

altura da arvore de recursao

Pior Caso, notacao O

degeneracao

14/14