Suponha que recebamos uma matriz contendo números inteiros não negativos (não necessariamente distintos).
Deixe ser ordenado na ordem não crescente. Queremos calcular
A solução óbvia é classificar e depois calcular . Isso fornece um algoritmo que é executado no tempo no pior dos casos.
É possível fazer melhor? Podemos calcular em tempo linear?
Minha principal pergunta é a acima. Mas seria interessante saber sobre a seguinte generalização do problema.
Deixe ser classificados de acordo com alguma comparação do Oracle e uma função dada por um Oracle. Dada e oráculos para e , o que podemos dizer sobre o tempo necessário para calcular ?
Ainda podemos calcular no tempo . Mas podemos provar um limite inferior super-linear para este caso generalizado?
Se a resposta for sim, o limite inferior se mantém se assumirmos que é a ordem usual em números inteiros é uma função "agradável" (monótona, polinomial, linear etc.)?