Considere os dois algoritmos a seguir para pesquisar em uma matriz classificada de elementos:
A) pesquisa de interpolação e pesquisa binária simulada em paralelo, e
B) pesquise por etapas alternadas de interpolação e etapas binárias.
Ambos os algoritmos têm a complexidade do pior caso (e a complexidade média para uma distribuição razoável). Existe um modelo de complexidade que permita separar esses dois algoritmos (expressando quando um é melhor que o outro)? Em particular, existe um exemplo em que a simulação em paralelo está superando o algoritmo de pesquisa mista?2 lg lg n
--- Alguns antecedentes básicos ---
1) de interpolação para o elemento em uma matriz classificada entre a posição e faz uma comparação na posição , e reduz o intervalo de pesquisa para ou acordo com o resultado (em oposição à pesquisa binária, que compara ao elemento na posição ).T i j g = i + ( j - i ) / ( T [ j ] - T [ i ] ) ∗ ( x - T [ i ] ) [ i , g ] ] g , j ] x ( i + j ) / 2
2) A complexidade de pior caso do algoritmo de busca simulando em pesquisa e interpolação de pesquisa binária paralela é : Dados dois algoritmos e dos piores complexidades caso e , o pior caso de a simulação paralela de e , parando assim que alguém termina, tem complexidade . A complexidade da pesquisa que alterna as etapas da pesquisa binária e pesquisa de interpolação também é 2 \ lg n + 1 , porque o intervalo de pesquisa é pelo menos reduzido em dois a cada duas comparações.A B f ( n ) g ( n ) A B 2 min { f ( n ) , g ( n ) } ∈ O ( min f ( n ) , g ( n ) ) 2 lg n + 1
fonte
Respostas:
Em Pesquisando arquivos não indexados e não uniformemente geradosregistroregistroN por Willard em Time , ele faz referência a uma versão preliminar (do artigo vinculado) intitulada "Algoritmos de pesquisa surpreendentemente eficientes para arquivos gerados não uniformemente" que aparecem na 21ª Conferência Allerton sobre Controle e Computação da Comunicação em 1983, pp. 656-662. Não consigo encontrar este documento na Web, mas na versão posterior (vinculada) acima, ele diz que o artigo anterior mostra que a sinergia entre pesquisa binária e interpolação pode reduzir o tempo de pesquisa para para determinados distribuições -uniformes de chaves de registro.o ( logn )
Especificamente, chame um PDF regular se houver tal que para ou e e para . Para dados produzidos por PDFs regulares, a pesquisa de interpolação leva tempo esperado, enquanto a pesquisa binária leva tempo esperado. A intercalação deles, no entanto, leva tempo esperado.b 1 , b 2 , b 3 , b 4 μ ( x )μ b1, b2, b3, b4 x < b 1 x > b 2 μ ( x ) ≥ b 3 > 0 | μ ′ ( x ) | < b 4 b 1 ≤ x ≤ b 2 Ω ( log n ) Θ ( log nμ ( x ) = 0 x < b1 x > b2 μ ( x ) ≥ b3> 0 |μ′(x)|<b4 b1≤x≤b2 Ω(logn) O ( √Θ(logn) O(logn−−−−√)
Você também pode estar interessado no "Processamento paralelo de Willard e Reif : o comportamento incomum da pesquisa por interpolação" , que mostra que "o processamento paralelo antes da literalmente última iteração na pesquisa de um arquivo ordenado não indexado quase não tem utilidade".
fonte