L'esterno foreach
viene eseguito n = | c1
| volte (dove | x | è la dimensione di c1
), mentre l'interno foreach
viene eseguito m = | c2
| volte. Ecco O (n * m) volte in totale.
Come potrei rappresentare semplici algoritmi con le seguenti complessità?
Questa è la stessa di O (n^2). Qualcosa che richiede O (n^2) tempo sarebbe bere un brindisi con ogni altra persona a una festa, assumendo che ci siano sempre esattamente due persone in un brindisi, e solo una persona fa la tostatura alla volta.
Idem come sopra; il termine O (n^2) domina. Un altro esempio di uno sforzo di O (n^2) è piantare alberi in un giardino quadrato di lunghezza n
, supponendo che sia necessario un tempo costante per piantare ogni albero, e che una volta piantato un albero altri alberi siano esclusi dalla sua vicinanza.
Un esempio di questo sarebbe trovare una parola in un dizionario ripetutamente raccogliendo il punto centrale della regione di pagine necessarie per la ricerca successiva. (In altre parole, una ricerca binaria.)
Utilizzare l'algoritmo di cui sopra, ma ora bisogna trovare ogni parola nel dizionario.
fonte
2010-02-01 23:37:58
Questa è una spiegazione fantastica. Nonostante sia un one-liner, la tua spiegazione di O (n log n) è davvero scattata. –