Casa Sviluppo Cos'è la complessità temporale? - definizione da techopedia

Cos'è la complessità temporale? - definizione da techopedia

Sommario:

Anonim

Definizione - Cosa significa complessità temporale?

La complessità temporale è un concetto in informatica che si occupa della quantificazione del tempo impiegato da un insieme di codice o algoritmo per elaborare o eseguire in funzione della quantità di input.

In altre parole, la complessità temporale è essenzialmente efficienza, o quanto tempo impiega una funzione di programma per elaborare un dato input.

Techopedia spiega la complessità temporale

La complessità del tempo è semplicemente una misura del tempo impiegato da una funzione o di un'espressione per completare il suo compito, nonché il nome del processo per misurare quel tempo. Può essere applicato a quasi tutti gli algoritmi o funzioni, ma è più utile per le funzioni ricorsive. È inutile misurare la complessità temporale per applicazioni come il recupero di nome utente e password da un database per il confronto o il semplice salvataggio di dati, sia esso di 20 ms o 5 ms; sarebbe più in linea con il tempo di accesso. Non ha nulla a che fare con la cura dei tempi di esecuzione, ma piuttosto che la differenza è trascurabile. Tuttavia, se esiste una funzione ricorsiva che può essere chiamata più volte, determinare e comprendere l'origine della sua complessità temporale può aiutare ad abbreviare il tempo complessivo di elaborazione, per esempio, da 600 ms a 100 ms.

La complessità temporale è espressa tipicamente nella "notazione O grande", ma ci sono altre notazioni. Questa è una rappresentazione matematica del limite superiore del fattore di scala per un algoritmo ed è scritta come O (Nn), con "N" come numero di input e "n" come numero di espressioni in loop. Ad esempio, abbiamo l'algoritmo:

numbers = {5, 6, 10, 11, 2}; foreach (number as number1)



{


foreach(number as number2) {

statements; } } numbers = {5, 6, 10, 11, 2}; foreach (number as number1)



{


foreach(number as number2) {

statements; } }

numbers = {5, 6, 10, 11, 2}; foreach (number as number1)



{



foreach(number as number2) {

statements; } } numbers = {5, 6, 10, 11, 2}; foreach (number as number1)



{


foreach(number as number2) {

statements; } }

numbers = {5, 6, 10, 11, 2}; foreach (number as number1)



{


foreach(number as number2) {


statements; } }

Ci sono cinque ingressi nell'array "numeri" e il ciclo "foreach" viene ripetuto due volte. Pertanto, la crescita esponenziale dei tempi di elaborazione si verifica con l'aumentare del numero di input e del numero di loop.

Cos'è la complessità temporale? - definizione da techopedia