Dubbio su equazioni di ricorrenza

Daffeen
Ciao a tutti, mi scuso in anticipo se la domanda possa risultare banale ma ho un piccolo dubbio:
L'equazione di ricorrenza di un algoritmo è
\(\displaystyle T(n) = \left\{
\begin{array}{ll}
\theta(1) & se\ n \le c \\
aT(\frac{n}{b}) & altrimenti
\end{array}
\right. \)
dove \(\displaystyle a \) è il numero di sottoproblemi e \(\displaystyle \frac{n}{b} \) è la dimensione del nuovo sottoproblema.
La mia domanda è: questo vale anche se i sottoproblemi di dimensione \(\displaystyle \frac{n}{b} \) hanno costi diversi?
Faccio un esempio: si supponga di avere un simil-mergeSort, ma che per qualche motivo il tempo per ordinare il sottoarray di destra sia \(\displaystyle n^2 \), mentre quello di sinistra sia \(\displaystyle n \).
La sua equazione di ricorrenza è
\(\displaystyle T(n) = \left\{
\begin{array}{ll}
\theta(1) & se\ n \le 1 \\
2T(\frac{n}{2}) & altrimenti
\end{array}
\right. \)

(dove però un \(\displaystyle T{(\frac{n}{2})} = \theta(n) \) e un altro è \(\displaystyle T(\frac{n}{2} = \theta(n^2) \))
giusto?
Ma allora è la stessa equazione di ricorrenza di un mergeSort normale, dunque da cosa deduco che in realtà il suo costo è maggiore?
Vi ringrazio in anticipo e mi scuso ancora per la banalità.

Risposte
apatriarca
\( \displaystyle T(n) = \left\{ \begin{array}{ll} \theta(1) & se\ n \le c \\ aT(\frac{n}{b}) & altrimenti \end{array} \right. \)Il valore di \(T(n)\) non lo scegli tu ma segue dall'equazione di ricorrenza e siccome questa dipende solo da \(n\) otterrai lo stesso valore per ogni (sotto)problema con la stesso valore di \(n\). Se avessero costi diversi avresti qualcosa tipo \(a\,T(n/b) + d\,S(n/e)\) dove alcuni sottoproblemi hanno un costo calcolato con \(T\) e altri con \(S\).

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.