1 / 12

Medianas e Estatísticas de Ordem

Medianas e Estatísticas de Ordem. Marcela Quispe Cruz mqc@cin.ufpe.br. Medianas e Estatísticas de Ordem. o Problema da Seleção consiste em que dado um conjunto A de n números distintos e um número i , 1 <= i <= n, determinar qual é o i-ésimo menor elemento de A.

kaden
Download Presentation

Medianas e Estatísticas de Ordem

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Medianas e Estatísticas de Ordem Marcela Quispe Cruz mqc@cin.ufpe.br

  2. Medianas e Estatísticas de Ordem • o Problema da Seleção consiste em que dado um conjunto A de n números distintos e um número i, 1 <= i <= n, determinar qual é o i-ésimo menor elemento de A. • São casos particulares do problema da seleção: • O mínimo, o primeiro • O máximo, o ultimo • A mediana de um conjunto, onde i = 1, i = n e i = n/2, respectivamente. • Par Impar • Um algoritmo para o problema da seleção deve de alguma forma obter informação, ainda que parcial, sobre a ordem dos elementos do conjunto.

  3. Para determinar o mínimo n-1 comparações são necessárias. O mesmo é certo para o máximo. Por tanto, o numero deve ser 2n-2 para determinar ambos. De fato somente 3 comparações são necessárias para encontrar ambos o mínimo e o máximo Quantas comparações são necessárias para determinar ambos o mínimo e o máximo ?

  4. compara o menor com min y o maior com max

  5. Seleção em tempo linear esperado • Entrada: vetor A de números reais, os índices p e rque delimitam inicio e fim do subvetor onde seria feita a seleção e i, o índice do elemento procurado no vetor ordenado. • Saída: o i-ésimo menor elemento do vetor A. RANDOMIZED-SELECT(A, p, r, i) 1if p = r 2then return A[p] 3 q ← RANDOMIZED-PARTITION(A, p, r) 4 k ← q - p + 1 5if i = k 6 thenreturn A[q] 7elseif i < k 8thenreturn RANDOMIZED-SELECT(A, p, q - 1, i) 9elsereturn RANDOMIZED-SELECT(A, q + 1, r, i - k)  k de elementos no subarray A[p..q]  o valor pivô é a resposta

  6. Ex. de PARTITION • PARTITION(A,p,r) • x = A[ r ] ................................. • 2 i = p - 1 .................................. • 3 for j = p to r - 1 ......................... • do if A[ j ] <= x ......................... • 5 then i = i + 1 ......................... • trocar A[ i ] com A[ j ] .......... • 7 trocar A[ i+1] com A[ r ] .............. • 8 return i + 1 ...... ......... ............. Total: ( r – p ) e <= { 6 ( r – p ) + 6 } ou seja lineal na longitude do array A[p..r] RAMDOMIZED-PARTITION(A,p,r) 1 i = RAMDOM (p,r) 2 exchange A[p] <-> A[i] 3 return PARTITION(A,p,r) escolhe um i, p <= i <= r e usamos A[i] como pivot

  7. Necessitamos mostrar que n é suficientemente grande, esta expressão é no maior cn/4-c/2-an ≥ 0 Se assumimos que T(n)=O(1) para n<2c/(c-4a), temos T(n) = O(n). Nós concluímos que qualquer ordem estatístico e no particular a mediana pode ser determinar em promedio em tempo lineal

  8. Seleção em tempo linear pior caso O algoritmo de seleção com tempo de execução O(n) no pior caso seleciona o elemento desejado particionando recursivamente o arranjo de entrada. Essa partição deve garantir uma boa divisão desse arranjo. O algoritmo SELECT determina o i-ésimo menor elemento de um arranjo de entrada com n > 1 elementos, executando 5 etapas: • Dividir os n elementos do arranjo de entrada em piso(n/5) grupos de 5 elementos cada e no máximo 1 grupo com menos de 5 elementos. O(n) • Encontrar a mediana dos teto(n/5) grupos, usando primeiro a ordenação por inserção dos elementos do grupo para em seguida, escolher a mediana dos grupos. O(n) • Usar o SELECT recursivamente para encontrar a mediana x das teto(n/5) medianas encontradas. T(n/5) • Particionar o arranjo de entrada em torno da mediana de medianas x. Seja k uma unidade maior que o número de elementos no lado de baixo da partição, de forma que x seja o k-ésimo menor elemento e existam n – k elementos no alto da partição. O(n) • Se i == k, retorne k. Caso contrário, usar o SELECT recursivamente para encontrar o i-ésimo menor elemento no lado baixo da partição, se i <= k, ou então o (i – k)-ésimo menor elemento no lado alto da partição, se i > k. T( max( q - p, r - q ) )

  9. pelo menos 1/2 dos teto(n/5) medianas no step 2 são maiores que x, ignorando o grupo no qual x pertence e o grupo que tem quantidade menor que 5 elementos si 5 não divide n exatamente Logo o número de elementos maiores que x é pelo menos Assumindo que T(n) é não- decrescente isso implica que o tempo usado pelo step 5 é não maior Que T( 7n/10 + 6 )

  10. Assumindo que a entrada com n<=140 usa tempo O(1). Permita que a seja tal que os step 1,3,4 necessitem tempo não maior que an vezes. Assuma que T(n) é não decrementavel. Logo provaremos por induçao que T(n)<=cn, para todo n>0. Escolhendo c bastante grande que Pela Hipotesis de Indução

  11. ou Posto que n >= 140 temos que n/(n-70)<2 por tanto isto seria verdadeiro para c >= 20a e logo temos demonstrado que T(20)<=cn para todo n >= 140 e:

More Related