Volume III de Knuth de The Art of Computer Programming (capítulo 5, versículo 3.2) inclui o seguinte tabela listando o exato número mínimo de comparações necessárias para selecionar o th menor elemento de um conjunto indiferenciado de tamanho , para todos . Esta tabela, juntamente com as conhecidas expressões de formulário fechado e , representa a maior parte do estado da arte em 1976 .n 1 ≤ t ≤ n ≤ 10 V 1 ( n ) = n - 1
valor mais exato de foi calculado nos últimos 36 anos? Estou particularmente interessado nos valores exatos de , o número mínimo de comparações necessárias para calcular a mediana.M ( n ) = V ⌈ n / 2 ⌉ ( n )
Como aponta @ MarkusBläser, a tabela de Knuth parece já incorporar resultados mais recentes de Bill Gasarch, Wayne Kelly e Bill Pugh ( encontrar o i-ésimo maior de n para pequenos i, n . SIGACT News 27 (2): 88-96, 1996 .)
Respostas:
Kenneth Oksanen publicou uma tabela expandida de valores até , com base em sua própria pesquisa no computador . Okansen também fornece descrições das árvores de comparação ideais para a maioria dos valores que ele relata. Aqui está uma captura de tela de sua tabela:n=15
Obrigado a @ MarkusBläser pela liderança!
fonte
Gostaria de saber se essa informação pode ser útil para você. Infelizmente, ele não fornece nenhuma informação adicional para a pergunta desta publicação, mas é mais uma resposta ao seu comentário sobre o que era isso (analisando variantes do QuickSelect).
O número mínimo esperado de comparações, observado ou é obviamente significativamente mais fácil de calcular (com a expectativa tomada uniformemente em todas as permutações),v(n,t) vt(n)
Esse resultado não é usado com pouca frequência e, em particular, é a base para os algoritmos em "Amostra adaptável para o QuickSelect" de Martínez, Panario e Viola . O ponto de partida do trabalho é a mediana de três em QuickSelect e, depois, perguntar: é pertinente escolher sistematicamente a mediana, quando o elemento que procuramos tem uma classificação relativa muito menor que n / 2 ou muito maior que n / 2 ?
Em outras palavras, suponha que você esteja procurando o ésimo elemento em uma lista de elementos e esteja escolhendo seu pivô entre os clusters de elementos. Em vez de tomar a mediana ( ), você levará onde . Eles mostram que esse algoritmo pode, para a escolha certa de ser praticamente mais eficiente que a variante mediana de três.n m m / 2 α m α = k / n mk n m m/2 αm α=k/n m
fonte