Non sarebbe sufficiente a dare un ingresso speciale e mostrare che la corsa tempo è di almeno f (n)?
Sì, supponendo che stanno parlando del caso peggiore complessità.
Se si parla della peggiore complessità del caso - e si è dimostrato che è in esecuzione nel O(f(n))
, se si trova un input "peggiore" di C*f(n))
per alcuni costanti C
- si è effettivamente dimostrato che l'algoritmo (nel peggiore delle prestazioni) è in Ω(f(n))
e dal O(f(n)) [intersection] Ω(f(n)) = Theta(f(n))
, significa che l'algoritmo è in esecuzione nel Theta(f(n))
nella peggiore analisi del caso.
Nota che dovrebbe in realtà essere una "famiglia" di esempi, dal momento che se io sostengo "Sì, ma questo è corretto solo per piccoli n
valori, e non per n>N
(per alcuni N
), mi si può dimostrare che questo famiglia di esempi copre anche il caso in cui n>N
, ed essere ancora valida.
Simmetricamente, se hai dimostrato un algoritmo ha migliori prestazioni caso di Ω(f(n))
, e hai trovato qualche input che corre "migliore" (più veloce) rispetto C*f(n))
per un po ' costante C
, avete effettivamente dimostrato che l'algoritmo è Theta(f(n))
nella migliore analisi del caso
Questo trucco NON funziona per l'analisi del caso medio, in cui è necessario calcolare l'attesa del tempo di esecuzione e un esempio singolare non è utile.
Ho letto che una possibilità per dimostrare la tenuta è "ridurre lo ordinamento ". Non ho idea di che cosa si intende con questo
Questo viene fatto per dimostrare una pretesa molto più forte, che non v'è alcun algoritmo (a tutti) che può risolvere qualche problema al momento desiderato.
L'utilizzo comune è di presupporre l'algoritmo della scatola nera A
che viene eseguito in alcuni periodi o(g(n))
e quindi utilizzare A
per creare un algoritmo di ordinamento che viene eseguito nel tempo o(nlogn)
. Tuttavia, poiché l'ordinamento è il problema Ω(nlogn)
, abbiamo una contraddizione e possiamo concludere che le ipotesi su A
sono errate e che non possono essere eseguite nel momento desiderato.
Questo ci aiuta a dimostrare un reclamo più forte: non solo il nostro algoritmo ha questo limite inferiore, ma TUTTI gli algoritmi che risolvono il problema specifico hanno questo limite inferiore.
Quindi, ho bisogno di dimostrare che il problema, che il mio algoritmo risolve, è equivalente al problema di ordinare i dati, giusto? – 0xbadf00d
@ 0xbadf00d Non esattamente, è possibile dimostrare che è possibile risolvere l'ordinamento con esso in tempo (nlogn). – amit