Wiki ha un buon cheat sheet, ma comunque non implica no. di confronti o swap. (anche se il numero di swap di solito decide la sua complessità). Quindi ho creato quanto segue. Le seguenti informazioni sono corrette? Per favore fatemi sapere se c'è qualche errore, lo correggerò.
Inserimento ordinamento:
- Caso medio / peggiore: ; accade quando l'input è già ordinato in ordine decrescente
- Best Case: ; quando l'input è già ordinato
- Numero di confronti: nel peggiore dei casi & nel migliore dei casi
- Numero di swap: nel caso peggiore / medio e nel migliore dei casi
Selezione ordinamento:
- Caso medio / Peggior caso / migliore caso:
- Numero di confronti:
- Numero di scambi: nel caso peggiore / medio e nel migliore dei casi Al massimo l'algoritmo richiede N scambi, una volta scambiato un elemento in posizione, non lo toccherai mai più.
Unisci ordinamento:
- Caso medio / Peggior caso / migliore caso: ; non importa affatto se l'input è ordinato o meno
- Numero di confronti: nel peggiore dei casi & nel migliore dei casi; supponendo che stiamo unendo due array di dimensioni n & m dove
- Numero di swap: nessuno swap! [ma richiede memoria aggiuntiva, non ordinamento sul posto]
Ordinamento rapido:
- Peggiore caso: ; succede che l'ingresso è già ordinato
- Best Case: ; quando pivot divide l'array esattamente a metà
- Numero di confronti: nel peggiore dei casi & nel migliore dei casi
- Numero di swap: nel peggiore dei casi e nel migliore dei casi
Ordinamento bolle:
- Peggiore caso:
- Best Case: ; su già ordinato
- Numero di confronti: nel caso peggiore e nel caso migliore
- Numero di swap: nel peggiore dei casi e nel migliore dei casi
Ricerca lineare:
- Peggiore caso: ; chiave di ricerca non presente o ultimo elemento
- Best Case: ; primo elemento
- Numero di confronti: nel peggiore dei casi e nel migliore dei casi
Ricerca binaria:
- Caso peggiore / caso medio:
- Best Case: ; quando la chiave è l'elemento centrale
- Numero di confronti: nel caso peggiore / medio e nel migliore dei casi