La sottrazione è simile (eccetto che potresti aver bisogno di prendere in prestito invece di portare). Chiamiamo questa O (n) o complessità lineare. Vedi lo schema? La complessità (essendo il numero di operazioni) è direttamente proporzionale al numero di cifre n nel numero più grande. Se aggiungiamo due numeri di 10.000 cifre, dobbiamo fare 10.000 aggiunte. Se aggiungiamo due numeri a 100 cifre, dobbiamo fare 100 aggiunte. È ovvio che per aggiungere questi due numeri insieme dobbiamo aggiungere 6 cifre (e possibilmente portare un 7). Supponiamo che l’aggiunta di questi numeri sia l’operazione più costosa in questo algoritmo. La parte “decine” di quel numero viene riportata alla colonna successiva. Linea i numeri in alto (a destra) e aggiungi le cifre in una colonna scrivendo l’ultimo numero di quell’aggiunta nel risultato.
Un metodo per risolverli è chiamato algoritmo. Ognuno di questi è un’operazione o un problema. Le operazioni aritmetiche di base che abbiamo imparato a scuola erano: Il miglior esempio di Big-O che riesco a pensare è fare aritmetica. Torna indietro e rileggi quello sopra quando hai letto il resto. complessità: se mi ci vuole un secondo per ordinare 10.000 elementi, quanto tempo mi ci vorrà per ordinare un milione? La complessità in questo caso è una misura relativa a qualcos’altro.Ma cosa succede se il confronto è economico ma lo scambio è costoso? Cambia il confronto e Ciò presuppone che il confronto sia costoso. Ad esempio, gli algoritmi di ordinamento vengono generalmente confrontati in base a operazioni di confronto (confronto di due nodes per determinare il loro ordine relativo). Quella variabile viene scelta in base a osservazioni o ipotesi. rappresentazione: Big-O (nella sua forma più semplice) riduce il confronto tra algoritmi in una singola variabile.Ma un confronto tra due algoritmi per eseguire operazioni aritmetiche (una moltiplicazione, un’aggiunta) ti dirà qualcosa di significativo Non è ansible confrontare un algoritmo per eseguire la moltiplicazione aritmetica con un algoritmo che ordina un elenco di numeri interi. relativo: puoi solo confrontare le mele con le mele.La notazione Big-O è una rappresentazione relativa della complessità di un algoritmo.Ĭi sono alcune parole importanti e deliberatamente scelte in quella frase: La definizione più semplice che posso dare per la notazione Big-O è questa: La complessità di Big O può essere visualizzata con questo grafico: Ci scusiamo per qualsiasi confusione causata. Nella mia esperienza questo è in realtà tipico delle discussioni in contesti non accademici. Nota rapida, questo è quasi certamente confuso con la notazione di Big O (che è un limite superiore) con la notazione Theta (che è un limite di due lati).