logo

Complessità temporali di tutti gli algoritmi di ordinamento

L’efficienza di un algoritmo dipende da due parametri:

  1. Complessità temporale
  2. Complessità spaziale

Complessità temporale:

La complessità temporale è definita come il numero di volte in cui un particolare set di istruzioni viene eseguito anziché il tempo totale impiegato. Questo perché il tempo totale impiegato dipende anche da alcuni fattori esterni come il compilatore utilizzato, la velocità del processore, ecc.



Complessità spaziale:

La complessità spaziale è lo spazio di memoria totale richiesto dal programma per la sua esecuzione.

Entrambi sono calcolati in funzione della dimensione dell'input (n). Una cosa importante qui è che, nonostante questi parametri, l'efficienza di un algoritmo dipende anche da loro natura E taglia di IL ingresso.

Tipi di complessità temporale:

  1. Miglior complessità temporale: Definire l'input per il quale l'algoritmo impiega meno tempo o tempo minimo. Nel migliore dei casi calcola il limite inferiore di un algoritmo. Esempio: nella ricerca lineare, quando i dati di ricerca sono presenti nella prima posizione di dati di grandi dimensioni, si verifica il caso migliore.
  2. Complessità temporale media: Nel caso medio, prendi tutti gli input casuali e calcola il tempo di calcolo per tutti gli input.
    E poi lo dividiamo per il numero totale di input.
  3. Peggiore complessità temporale: Definire l'input per il quale l'algoritmo richiede molto tempo o tempo massimo. Nel peggiore dei casi calcolare il limite superiore di un algoritmo. Esempio: nella ricerca lineare, quando i dati di ricerca sono presenti nell'ultima posizione di dati di grandi dimensioni, si verifica il caso peggiore.

Di seguito è riportato un rapido foglio di revisione a cui è possibile fare riferimento all'ultimo minuto:



Algoritmo Complessità temporale Complessità spaziale
Migliore Media Peggio Peggio
Ordinamento selezione SU2) SU2) SU2) O(1)
Ordinamento a bolle SU) SU2) SU2) O(1)
Ordinamento per inserimento SU) SU2) SU2) O(1)
Ordinamento heap O(n log(n)) O(n log(n)) O(nlog(n)) O(1)
Ordinamento rapido O(n log(n)) O(n log(n)) SU2) SU)
Unisci ordinamento O(n log(n)) O(n log(n)) O(n log(n)) SU)
Ordinamento del secchio O(n+k) O(n+k) SU2) SU)
Ordina radice OK(nk) OK(nk) OK(nk) O(n+k)
Conteggio O(n+k) O(n+k) O(n+k) Freccia)
Ordinamento della shell O(n log(n)) O(n log(n)) SU2) O(1)
Tim Ordina SU) O(nlog(n)) O(nlog(n)) SU)
Ordinamento dell'albero O(n log(n)) O(n log(n)) SU2) SU)
Ordinamento del cubo SU) O(n log(n)) O(n log(n)) SU)

Vedi anche:

  • Ricerca e ordinamento di articoli
  • Domande GATE dell'anno precedente sull'ordinamento
  • Complessità temporale e spaziale dell'ordinamento di inserimento
  • Complessità temporale e spaziale dell'ordinamento della selezione
  • Complessità temporale e spaziale del Bubble Sort
  • Complessità temporale e spaziale dell'ordinamento rapido
  • Complessità temporale e spaziale del Merge Sort
  • Complessità temporale e spaziale dell'algoritmo Radix Sort