• Nenhum resultado encontrado

Terceira Soluc¸˜ao - Complexidade

No documento Projeto e Análise de Algoritmos (páginas 27-31)

T(n): complexidade de tempo no pior caso

1 Divis˜ao em subconjuntos de 5 elementos. ⇥(n)

2 Encontrar a mediana de cada subconjunto. ⇥(n)

3 Encontrarx, a mediana das medianas. T(dn/5e)

4 Particionamento com pivˆox. O(n)

5 Encontrar oi-´esimo menor deA< T(k 1) OUencontrar oi k-´esimo menor deA>. T(n k) Temos ent˜ao a recorrˆencia

T(n) =T(dn/5e) +T(max{k 1,n k}) + ⇥(n)

Terceira Soluc¸˜ao - Complexidade

O diagrama abaixo classifica os elementos da ´ultima figura.

⇤ ⇤ . . . ⇤ ⇤ • . . . •

Isto porque no m´ınimod12dn5eegrupos contribuem com3 elementos>x, exceto possivelmente o ´ultimo e aquele que cont´emx. Portanto, 3 d12dn5ee 2 3n10 6.

Problema da Selec¸˜ao - terceira soluc¸˜ao

4 Usandox como pivˆo, particione o conjunto originalA criando dois subconjuntosA<eA>, onde

A<cont´em os elementos<x e A>cont´em os elementos>x.

Se a posic¸˜ao final dex ap´os o particionamento ´ek, ent˜ao

|A<|=k 1 e|A>|=n k.

C.C. de Souza, C.N. da Silva, O. Lee, P.J. de Rezende MC458 — Projeto e An´alise de Algoritmos I v. 2.2

Problema da Selec¸˜ao - terceira soluc¸˜ao

5 Finalmente, para encontrar oi-´esimo menor elemento do conjunto, compareicom a posic¸˜aok dex ap´os o

particionamento:

Sei =k,x ´e o elemento procurado;

Sei <k, ent˜ao determine recursivamente oi-´esimo menor elemento do subconjuntoA<;

Sen˜ao, determine recursivamente o(i k)-´esimo menor elemento do subconjuntoA>.

Note que esta parte ´e idˆentica ao feito emSELECT-NLe em SELECT-ALEAT. O que diferencia este algoritmo dos outros ´e a escolha dopivˆo. Escolhendo-se a mediana das medianas, vamos poder garantir que nenhum dos lados ´e muito “grande”.

C.C. de Souza, C.N. da Silva, O. Lee, P.J. de Rezende MC458 — Projeto e An´alise de Algoritmos I v. 2.2

Terceira soluc¸˜ao – complexidade

T(n): complexidade de tempo no pior caso

1 Divis˜ao em subconjuntos de 5 elementos. ⇥(n)

2 Encontrar a mediana de cada subconjunto. ⇥(n)

3 Encontrarx, a mediana das medianas. T(dn/5e)

4 Particionamento com pivˆox. O(n)

5 Encontrar oi-´esimo menor deA< T(k 1) OUencontrar oi k-´esimo menor deA>. T(n k) Temos ent˜ao a recorrˆencia

T(n) =T(dn/5e) +T(max{k 1,n k}) + ⇥(n)

Terceira Soluc¸˜ao - Complexidade

O diagrama abaixo classifica os elementos da ´ultima figura.

⇤ ⇤ . . . ⇤ ⇤ • . . . •

Isto porque no m´ınimod12dn5eegrupos contribuem com3 elementos>x, exceto possivelmente o ´ultimo e aquele que cont´emx. Portanto, 3 d12dn5ee 2 3n10 6.

Problema da Selec¸˜ao - terceira soluc¸˜ao

4 Usandox como pivˆo, particione o conjunto originalA criando dois subconjuntosA<eA>, onde

A<cont´em os elementos<x e A>cont´em os elementos>x.

Se a posic¸˜ao final dex ap´os o particionamento ´ek, ent˜ao

|A<|=k 1 e|A>|=n k.

C.C. de Souza, C.N. da Silva, O. Lee, P.J. de Rezende MC458 — Projeto e An´alise de Algoritmos I v. 2.2

Problema da Selec¸˜ao - terceira soluc¸˜ao

5 Finalmente, para encontrar oi-´esimo menor elemento do conjunto, compareicom a posic¸˜aok dex ap´os o

particionamento:

Sei =k,x ´e o elemento procurado;

Sei <k, ent˜ao determine recursivamente oi-´esimo menor elemento do subconjuntoA<;

Sen˜ao, determine recursivamente o(i k)-´esimo menor elemento do subconjuntoA>.

Note que esta parte ´e idˆentica ao feito emSELECT-NLe em SELECT-ALEAT. O que diferencia este algoritmo dos outros ´e a escolha dopivˆo. Escolhendo-se a mediana das medianas, vamos poder garantir que nenhum dos lados ´e muito “grande”.

C.C. de Souza, C.N. da Silva, O. Lee, P.J. de Rezende MC458 — Projeto e An´alise de Algoritmos I v. 2.2

Terceira soluc¸˜ao – complexidade

T(n): complexidade de tempo no pior caso

1 Divis˜ao em subconjuntos de 5 elementos. ⇥(n)

2 Encontrar a mediana de cada subconjunto. ⇥(n)

3 Encontrarx, a mediana das medianas. T(dn/5e)

4 Particionamento com pivˆox. O(n)

5 Encontrar oi-´esimo menor deA< T(k 1) OUencontrar oi k-´esimo menor deA>. T(n k) Temos ent˜ao a recorrˆencia

T(n) =T(dn/5e) +T(max{k 1,n k}) + ⇥(n)

Terceira Soluc¸˜ao - Complexidade

O diagrama abaixo classifica os elementos da ´ultima figura.

⇤ ⇤ . . . ⇤ ⇤ • . . . •

Isto porque no m´ınimod12dn5eegrupos contribuem com3 elementos>x, exceto possivelmente o ´ultimo e aquele que cont´emx. Portanto, 3 d12dn5ee 2 3n10 6.

Problema da Selec¸˜ao - terceira soluc¸˜ao

4 Usandox como pivˆo, particione o conjunto originalA criando dois subconjuntosA<eA>, onde

A<cont´em os elementos<x e A>cont´em os elementos>x.

Se a posic¸˜ao final dex ap´os o particionamento ´ek, ent˜ao

|A<|=k 1 e|A>|=n k.

C.C. de Souza, C.N. da Silva, O. Lee, P.J. de Rezende MC458 — Projeto e An´alise de Algoritmos I v. 2.2

Problema da Selec¸˜ao - terceira soluc¸˜ao

5 Finalmente, para encontrar oi-´esimo menor elemento do conjunto, compareicom a posic¸˜aok dex ap´os o

particionamento:

Sei =k,x ´e o elemento procurado;

Sei <k, ent˜ao determine recursivamente oi-´esimo menor elemento do subconjuntoA<;

Sen˜ao, determine recursivamente o(i k)-´esimo menor elemento do subconjuntoA>.

Note que esta parte ´e idˆentica ao feito emSELECT-NLe em SELECT-ALEAT. O que diferencia este algoritmo dos outros ´e a escolha dopivˆo. Escolhendo-se a mediana das medianas, vamos poder garantir que nenhum dos lados ´e muito “grande”.

C.C. de Souza, C.N. da Silva, O. Lee, P.J. de Rezende MC458 — Projeto e An´alise de Algoritmos I v. 2.2

Terceira soluc¸˜ao – complexidade

T(n): complexidade de tempo no pior caso

1 Divis˜ao em subconjuntos de 5 elementos. ⇥(n)

2 Encontrar a mediana de cada subconjunto. ⇥(n)

3 Encontrarx, a mediana das medianas. T(dn/5e)

4 Particionamento com pivˆox. O(n)

5 Encontrar oi-´esimo menor deA< T(k 1) OUencontrar oi k-´esimo menor deA>. T(n k) Temos ent˜ao a recorrˆencia

T(n) =T(dn/5e) +T(max{k 1,n k}) + ⇥(n)

Terceira Soluc¸˜ao - Complexidade

O diagrama abaixo classifica os elementos da ´ultima figura.

⇤ ⇤ . . . ⇤ ⇤ • . . . •

Isto porque no m´ınimod12dn5eegrupos contribuem com3 elementos>x, exceto possivelmente o ´ultimo e aquele que cont´emx. Portanto, 3 d12dn5ee 2 3n10 6.

Terceira Soluc¸˜ao - Complexidade

Da mesma forma, o n´umero de elementos<x, isto ´e⇤s, ´e no m´ınimo 3n10 6.

Assim, no passo 5 do algoritmo, max{k 1,n k} n

A recorrˆenciaT(n)est´a agora completa:

T(n)

⇢ ⇥(1), n140

T(dn/5e) +T(b7n/10c+6) + ⇥(n), n>140, 140 ´e um “n´umero m´agico” que faz as contas funcionarem. . . A soluc¸˜ao ´eT(n)2⇥(n)

C.C. de Souza, C.N. da Silva, O. Lee, P.J. de Rezende MC458 — Projeto e An´alise de Algoritmos I v. 2.2

No documento Projeto e Análise de Algoritmos (páginas 27-31)

Documentos relacionados