INFOPedia : PRGComplessita

HomePage :: Categorie :: Indice :: Ultime modifiche :: Ultimi commenti :: Login/Registrazione
La versione più recente è stata modificata il 2006-03-02 18:22:40 da ViViana

Aggiunzioni:
~~L'algoritmo della Torre di Hanoi ha complessità O(2^n) (sono necessarie 2^{n-1} mosse).

Omissioni:
~~L'algoritmo della Torre di Hanoi ha complessità O(2^n) (sono necessarie 2^n-1 mosse).



Modificato il 2006-03-02 18:21:41 da ViViana

Aggiunzioni:
~ 2) Complessità sottolineare: O(n ), con k<1

Omissioni:
~ 2) Complessità sottolineare: O(n ), con k<1 k



Modificato il 2006-03-02 18:20:47 da ViViana

Aggiunzioni:
ALGORTIMO CASO MIGLIORE CASO MEDIO CASO PEGGIORE
Ordinamento Ingenuo O(n^2) O(n^2) O(n^2)
Selection Sort O(n)
O(n^2)
Bubble Sort O(n)
O(n^2)
Counting Sort O(n) O(n) O(n)
Quick Sort O(n log n) O(n log n) O(n^2)
Merge Sort O(n log n) O(n log n) O(n log n)

Un algoritmo si dice efficiente se il suo tempo di esecuzione è limitato superiormente da una funzione polinomiale (funzione limitata superiormente da n^k per un opportuno fissato intero k).


Omissioni:
ALGORTIMO CASO MIGLIORE CASO MEDIO CASO PEGGIORE
Ordinamento Ingenuo O(n_2) O(n_2) O(n_2)
Selection Sort O(n)
O(n^2)
Bubble Sort O(n)
O(n_2)
Counting Sort O(n) O(n) O(n)
Quick Sort O(n log n) O(n log n) O(n_2)
Merge Sort O(n log n) O(n log n) O(n log n)

Un algoritmo si dice efficiente se il suo tempo di esecuzione è limitato superiormente da una funzione polinomiale (funzione limitata superiormente da n^ k per un opportuno fissato intero k).




Modificato il 2006-03-02 18:19:43 da ViViana

Aggiunzioni:
~ 5) Complessità quadratica n^ k , con k>=2: O(n^k )
L'algoritmo della Torre di Hanoi ha complessità O(2^n) (sono necessarie 2^n-1 mosse).
Un algoritmo si dice efficiente se il suo tempo di esecuzione è limitato superiormente da una funzione polinomiale (funzione limitata superiormente da n^ k per un opportuno fissato intero k).


Omissioni:
~ 5) Complessità quadratica n^k , con k>=2: O(n^k)
L'algoritmo della Torre di Hanoi ha complessità O(2^n) (sono necessarie 2^(n-1) mosse).
Un algoritmo si dice efficiente se il suo tempo di esecuzione è limitato superiormente da una funzione polinomiale (funzione limitata superiormente da n^k per un opportuno fissato intero k).




Modificato il 2006-03-02 18:18:32 da ViViana

Aggiunzioni:
ALGORTIMO CASO MIGLIORE CASO MEDIO CASO PEGGIORE
Ordinamento Ingenuo O(n_2) O(n_2) O(n_2)
Selection Sort O(n)
O(n^2)
Bubble Sort O(n)
O(n_2)
Counting Sort O(n) O(n) O(n)
Quick Sort O(n log n) O(n log n) O(n_2)
Merge Sort O(n log n) O(n log n) O(n log n)

L'algoritmo della Torre di Hanoi ha complessità O(2^n) (sono necessarie 2^(n-1) mosse).

Omissioni:
ALGORTIMO CASO MIGLIORE CASO MEDIO CASO PEGGIORE
Ordinamento Ingenuo O(n_2) O(n_2) O(n_2)
Selection Sort O(n)
O(

L'algoritmo della Torre di Hanoi ha complessità O(2^n) (sono necessarie 2^(n-1) mosse).




Modificato il 2006-03-02 18:17:32 da ViViana

Aggiunzioni:
ALGORTIMO CASO MIGLIORE CASO MEDIO CASO PEGGIORE
Ordinamento Ingenuo O(n_2) O(n_2) O(n_2)
Selection Sort O(n)
O(

È posseduta dagli algoritmi che eseguono un numero di operazioni sostanzialmente proporzionale ad n.
Es.: ricerca sequenziale, somma di numeri di n cifre, merge di due file, ecc.
5) Complessità quadratica n^k , con k>=2: O(n^k)
Es.: Bubblesort ( O(n^2) ), moltiplicazione di due 2 matrici ( O(n^3) ), ecc.
Es.: un algoritmo che debba produrre tutte le possibili stringhe lunghe n di k simboli avrà complessità O(k^n) cioè esponenziale.
L'algoritmo della Torre di Hanoi ha complessità O(2^n) (sono necessarie 2^(n-1) mosse).
Un problema è computazionalmente trattabile se esiste un algoritmo efficiente che lo risolve; altrimenti il problema è computazionalmente intrattabile.
Un algoritmo si dice efficiente se il suo tempo di esecuzione è limitato superiormente da una funzione polinomiale (funzione limitata superiormente da n^k per un opportuno fissato intero k).


Omissioni:
ALGORTIMO CASO MIGLIORE CASO MEDIO CASO PEGGIORE
Ordinamento Ingenuo O(n_2) O(n_2) O(n_2)
Selection Sort O(n)
O(n_2)
Bubble Sort O(n)
O(n_2)
Counting Sort O(n) O(n) O(n)
Quick Sort O(n log n) O(n log n) O(n_2)
Merge Sort O(n log n) O(n log n) O(n log n)

È posseduta dagli algoritmi che eseguono un numero di operazioni sostanzialmente proporzionale ad n. Es.: ricerca sequenziale, somma di numeri di n cifre, merge di due file, ecc.
5) Complessità quadratica n^k , con k>=2: O(n^k)
Es.: Bubblesort ( O(n^2) ), moltiplicazione di due 2 matrici ( O(n^3) ), ecc.
Es.: un algoritmo che debba produrre tutte le possibili stringhe lunghe n di k simboli avrà complessità O(k^n) cioè esponenziale.
L'algoritmo della Torre di Hanoi ha complessità O(2^n) (sono necessarie 2^n - 1 mosse).
Un problema è computazionalmente trattabile se esiste un algoritmo efficiente che lo risolve; altrimenti il problema è computazionalmente intrattabile.
Un algoritmo si dice efficiente se il suo tempo di esecuzione è limitato superiormente da una funzione polinomiale (funzione limitata superiormente da n^k per un opportuno fissato intero k).




Modificato il 2006-03-02 18:13:40 da ViViana

Aggiunzioni:
Un problema è computazionalmente trattabile se esiste un algoritmo efficiente che lo risolve; altrimenti il problema è computazionalmente intrattabile.
Un algoritmo si dice efficiente se il suo tempo di esecuzione è limitato superiormente da una funzione polinomiale (funzione limitata superiormente da n^k per un opportuno fissato intero k).




Modificato il 2006-03-02 18:12:46 da ViViana

Aggiunzioni:
~~Tutte le classi di complessità elencate precedentemente vengono genericamente considerate come polinomiali. Esse sono caratterizzate dal fatto che la dimensione n non compare mai come esponente in alcun modo. Quando ciò avviene si parla invece di complessità esponenziale.
Es.: un algoritmo che debba produrre tutte le possibili stringhe lunghe n di k simboli avrà complessità O(k^n) cioè esponenziale.
L'algoritmo della Torre di Hanoi ha complessità O(2^n) (sono necessarie 2^n - 1 mosse).
È necessario guardare con particolare diffidenza agli algoritmi dotati di complessità esponenziale, perché possono richiedere dei tempi di esecuzione proibitivi (se non addirittura astronomici) anche per valori relativamente piccoli di n ed indipendentemente dalla velocità dell'elaboratore.
Purtroppo esistono molti problemi, anche di interesse pratico, per i quali non si conoscono ancora algoritmi non esponenziali (problemi intrattabili). Es.: problema del commesso viaggiatore.

Omissioni:
Tutte le classi di complessità elencate precedentemente vengono genericamente considerate come polinomiali. Esse sono caratterizzate dal fatto che la dimensione n non compare mai come esponente in alcun modo. Quando ciò avviene si parla invece di complessità esponenziale.
Es.: un algoritmo che debba produrre tutte le possibili stringhe lunghe n di k simboli avrà complessità O(k^n) cioè esponenziale.
L'algoritmo della Torre di Hanoi ha complessità O(2^n) (sono necessarie 2^n - 1 mosse).
È necessario guardare con particolare diffidenza agli algoritmi dotati di complessità esponenziale, perché possono richiedere dei tempi di esecuzione proibitivi (se non addirittura astronomici) anche per valori relativamente piccoli di n ed indipendentemente dalla velocità dell'elaboratore.
Purtroppo esistono molti problemi, anche di interesse pratico, per i quali non si conoscono ancora algoritmi non esponenziali (problemi intrattabili). Es.: problema del commesso viaggiatore.




Modificato il 2006-03-02 18:11:50 da ViViana

Aggiunzioni:
~~È posseduta dagli algoritmi che eseguono sempre lo stesso numero di operazioni indipendentemente dalla dimensione dei dati.
Es.: inserimento o estrazione dalla testa di una lista concatenata, ecc.
Es.:Ricerca binaria, o logaritmica, ecc.
È posseduta dagli algoritmi che eseguono un numero di operazioni sostanzialmente proporzionale ad n. Es.: ricerca sequenziale, somma di numeri di n cifre, merge di due file, ecc.
E’ la più ottimale complessità che gli algoritmi di ordinamento possono raggiungere.
Es.: Bubblesort ( O(n^2) ), moltiplicazione di due 2 matrici ( O(n^3) ), ecc.

Omissioni:
È posseduta dagli algoritmi che eseguono sempre lo stesso numero di operazioni indipendentemente dalla dimensione dei dati.
Es.: inserimento o estrazione dalla testa di una lista concatenata, ecc.
Es.:Ricerca binaria, o logaritmica, ecc.
È posseduta dagli algoritmi che eseguono un numero di operazioni sostanzialmente proporzionale ad n. Es.: ricerca sequenziale, somma di numeri di n cifre, merge di due file, ecc.
E’ la più ottimale complessità che gli algoritmi di ordinamento possono raggiungere.
Es.: Bubblesort ( O(n^2) ), moltiplicazione di due 2 matrici ( O(n^3) ), ecc.



Modificato il 2006-03-02 18:11:21 da ViViana

Aggiunzioni:
È posseduta dagli algoritmi che eseguono sempre lo stesso numero di operazioni indipendentemente dalla dimensione dei dati.
Es.: inserimento o estrazione dalla testa di una lista concatenata, ecc.


Omissioni:
~~È posseduta dagli algoritmi che eseguono sempre lo stesso numero di operazioni indipendentemente dalla dimensione dei dati.
Es.: inserimento o estrazione dalla testa di una lista concatenata, ecc.



Modificato il 2006-03-02 18:11:05 da ViViana

Aggiunzioni:
~~È posseduta dagli algoritmi che eseguono sempre lo stesso numero di operazioni indipendentemente dalla dimensione dei dati.
Es.: inserimento o estrazione dalla testa di una lista concatenata, ecc.


Omissioni:
~~ È posseduta dagli algoritmi che eseguono sempre lo stesso numero di operazioni indipendentemente dalla dimensione dei dati.
Es.: inserimento o estrazione dalla testa di una lista concatenata, ecc.




Modificato il 2006-03-02 18:10:52 da ViViana

Aggiunzioni:
~~ È posseduta dagli algoritmi che eseguono sempre lo stesso numero di operazioni indipendentemente dalla dimensione dei dati.
Es.: inserimento o estrazione dalla testa di una lista concatenata, ecc.


Omissioni:
~ È posseduta dagli algoritmi che eseguono sempre lo stesso numero di operazioni indipendentemente dalla dimensione dei dati.
Es.: inserimento o estrazione dalla testa di una lista concatenata, ecc.




Modificato il 2006-03-02 18:10:33 da ViViana

Aggiunzioni:
~ È posseduta dagli algoritmi che eseguono sempre lo stesso numero di operazioni indipendentemente dalla dimensione dei dati.
Es.: inserimento o estrazione dalla testa di una lista concatenata, ecc.
Es.:Ricerca binaria, o logaritmica, ecc.
È posseduta dagli algoritmi che eseguono un numero di operazioni sostanzialmente proporzionale ad n. Es.: ricerca sequenziale, somma di numeri di n cifre, merge di due file, ecc.
E’ la più ottimale complessità che gli algoritmi di ordinamento possono raggiungere.
Es.: Bubblesort ( O(n^2) ), moltiplicazione di due 2 matrici ( O(n^3) ), ecc.


Omissioni:
È posseduta dagli algoritmi che eseguono sempre lo stesso numero di operazioni indipendentemente dalla dimensione dei dati.
Es.: inserimento o estrazione dalla testa di una lista concatenata, ecc.
Es.:Ricerca binaria, o logaritmica, ecc.
È posseduta dagli algoritmi che eseguono un numero di operazioni sostanzialmente proporzionale ad n. Es.: ricerca sequenziale, somma di numeri di n cifre, merge di due file, ecc.
E’ la più ottimale complessità che gli algoritmi di ordinamento possono raggiungere.
Es.: Bubblesort ( O(n^2) ), moltiplicazione di due 2 matrici ( O(n^3) ), ecc.




Modificato il 2006-03-02 18:10:02 da ViViana

Aggiunzioni:
~ 4) Complessità n log n: O(n log n)
5) Complessità quadratica n^k , con k>=2: O(n^k)
6) Complessità fattoriale
7) Complessità esponenziale

Omissioni:
4) Complessità n log n: O(n log n)
  • Complessità quadratica n^k , con k>=2: O(n^k)
  • Complessità fattoriale
  • Complessità esponenziale



    Modificato il 2006-03-02 18:09:42 da ViViana

    Aggiunzioni:
    ~ 1) Complessità costante: O(1) 2) Complessità sottolineare: O(n ), con k<1 k
    3) Complessità lineare: O(n)


    Omissioni:
    ~1) Complessità costante: O(1)
  • Complessità sottolineare: O(n ), con k<1 k
  • Complessità lineare: O(n)



    Modificato il 2006-03-02 18:05:47 da ViViana

    Aggiunzioni:
    ~1) Complessità costante: O(1)

    Omissioni:
    ~1) elenco numerato:
  • 1) Complessità costante: O(1)




    Modificato il 2006-03-02 18:03:11 da ViViana

    Aggiunzioni:
    ~1) elenco numerato:
    1) Complessità costante: O(1)


    Omissioni:
    ~1) Complessità costante: O(1)



    Modificato il 2006-03-02 18:01:34 da ViViana

    Aggiunzioni:
    ~1) Complessità costante: O(1)
    1. Complessità sottolineare: O(n ), con k<1 k
    2. Complessità lineare: O(n)
    3. Complessità n log n: O(n log n)
    4. Complessità quadratica n^k , con k>=2: O(n^k)
    5. Complessità fattoriale
    6. Complessità esponenziale

      Omissioni:
      1) Complessità costante: O(1)
    7. Complessità sottolineare: O(n ), con k<1 k
    8. Complessità lineare: O(n)
    9. Complessità n log n: O(n log n)
    10. Complessità quadratica n^k , con k>=2: O(n^k)
    11. Complessità fattoriale
    12. Complessità esponenziale



      Modificato il 2006-03-02 17:59:47 da ViViana

      Aggiunzioni:
      CLASSI DI COMPLESSITA’
    13. Complessità costante: O(1)
    È posseduta dagli algoritmi che eseguono sempre lo stesso numero di operazioni indipendentemente dalla dimensione dei dati.
    Es.: inserimento o estrazione dalla testa di una lista concatenata, ecc.
    1. Complessità sottolineare: O(n ), con k<1 k
    Es.:Ricerca binaria, o logaritmica, ecc.
    1. Complessità lineare: O(n)
    È posseduta dagli algoritmi che eseguono un numero di operazioni sostanzialmente proporzionale ad n. Es.: ricerca sequenziale, somma di numeri di n cifre, merge di due file, ecc.
    1. Complessità n log n: O(n log n)
    E’ la più ottimale complessità che gli algoritmi di ordinamento possono raggiungere.
    1. Complessità quadratica n^k , con k>=2: O(n^k)
    Es.: Bubblesort ( O(n^2) ), moltiplicazione di due 2 matrici ( O(n^3) ), ecc.
    1. Complessità fattoriale
    2. Complessità esponenziale
    Tutte le classi di complessità elencate precedentemente vengono genericamente considerate come polinomiali. Esse sono caratterizzate dal fatto che la dimensione n non compare mai come esponente in alcun modo. Quando ciò avviene si parla invece di complessità esponenziale.
    Es.: un algoritmo che debba produrre tutte le possibili stringhe lunghe n di k simboli avrà complessità O(k^n) cioè esponenziale.
    L'algoritmo della Torre di Hanoi ha complessità O(2^n) (sono necessarie 2^n - 1 mosse).
    È necessario guardare con particolare diffidenza agli algoritmi dotati di complessità esponenziale, perché possono richiedere dei tempi di esecuzione proibitivi (se non addirittura astronomici) anche per valori relativamente piccoli di n ed indipendentemente dalla velocità dell'elaboratore.
    Purtroppo esistono molti problemi, anche di interesse pratico, per i quali non si conoscono ancora algoritmi non esponenziali (problemi intrattabili). Es.: problema del commesso viaggiatore.




    La versione più vecchia di questa pagina è stata modificata il 2006-03-02 17:58:20 da ViViana []
    Vista della pagina:

    COMPLESSITA' DEGLI ALGORITMI


    Il \mathit{“costo”} dell'esecuzione di un algoritmo dipende non solo dalla dimensione dei dati in Input, ma anche da quanto è “disordinato” il vettore da ordinare. Infatti, se il vettore è già ordinato (o quasi), terminano in breve tempo, mentre se è "molto disordinato" devono eseguire molti più passi.
    Si distinguono tre casi: caso peggiore, caso medio e caso migliore.

    La ricerca e l'ottimizzazione di algoritmi di ordinamento è molto importante in ambito informatico e per queste classi di algoritmi sono stati dimostrati svariati teoremi che ne definiscono i limiti. Il più importante è il seguente:

    Teorema del LOWER BOUND: La complessità in tempo di un qualsiasi algoritmo di ordinamento basato su confronti è di almeno \Omega(n log n) [cioè deve effettuare almeno (n log n) confronti], dove n è il numero di elementi da ordinare.

    ALGORTIMO CASO MIGLIORE CASO MEDIO CASO PEGGIORE
    Ordinamento Ingenuo O(n_2) O(n_2) O(n_2)
    Selection Sort O(n)
    O(n_2)
    Bubble Sort O(n)
    O(n_2)
    Counting Sort O(n) O(n) O(n)
    Quick Sort O(n log n) O(n log n) O(n_2)
    Merge Sort O(n log n) O(n log n) O(n log n)




    Torna a Programmazione e Lab.
    Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.1
    La pagina è stata generata in 0.2807 secondi