Supponiamo che ci venga dato un array contenente numeri interi non negativi (non necessariamente distinti).
Sia in ordine in ordine crescente. Vogliamo calcolare A m = max i ∈ [ n ] B [ i ] + i .
La soluzione ovvia è ordinare e quindi calcolare . Questo dà un algoritmo che gira nel tempo nel peggiore dei casi.
È possibile fare di meglio? Possiamo calcolare in tempo lineare?
La mia domanda principale è quella sopra. Ma sarebbe interessante conoscere la seguente generalizzazione del problema.
Lasciate che sia ordinati in secondo alcuni confronto Oracle e una funzione data da un oracolo. Dati e gli oracoli per e , cosa possiamo dire del tempo necessario per calcolare ?
Possiamo ancora calcolare in tempo. Ma possiamo dimostrare un limite inferiore super-lineare per questo caso generalizzato?
Se la risposta è sì, vale il limite inferiore se assumiamo che sia il solito ordine su numeri interi e sia una funzione "piacevole" (monotona, polinomiale, lineare, ecc.)?f