See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Integer sort - Wikipedia

Integer sort

Da Wikipedia, l'enciclopedia libera.

Stub Questa voce di informatica è solo un abbozzo: contribuisci a migliorarla secondo le convenzioni di Wikipedia.

L'Integer Sort ( o Integersort ) è un algoritmo di ordinamento lineare, infatti la sua complessità, per particolari configurazioni del vettore da ordinare, è O(n). Questo algoritmo viene utilizzato infatti per ordinare un insieme finito di N elementi i cui valori sono compresi nell'intervallo chiuso (1,k); per fare questo l'Integer Sort fa uso di una struttura ausiliaria, un vettore di dimensione k, utilizzata per salvare il numero di occorrenze di ogni singolo elemento nel vettore da ordinare.

Indice

[modifica] Spiegazione Astratta

L'algoritmo come detto in precedenza usa un vettore ausiliario( da ora in poi Y) dove la t-esima cella contiene la frequenza dell'elemento t nel vettore di input ( da ora in poi X). Per fare un esempio, se X fosse cosi strutturato:

 posizione 1  2 3 4 5 6 7 8 9 
 elemento  10 2 8 3 2 4 4 1 5

Y sarebbe:

 posizione  1 2 3 4 5 6 7 8 9 10
 elemento   1 2 1 2 1 0 0 1 0 1

Una volta costruito Y con le frequenze di ogni elemento di X si può ricostruire il vettore ordinato, analizzando Y dalla prima cella:

  1. Se Y[k]=0 passa alla cella successiva di Y.
  2. Se Y[k]=c>0 aggiungi c volte il valore k in X.

[modifica] Pseudo-codice

 IntegerSort(array X, intero K)
   sia Y un array di dimensione k   //Dichiarazione della struttura di appoggio
   for i ← 1 to k do                
     Y[i] ← 0                       //Inizializzazione del vettore Y
   for i ← 1 to n do
     Y[X[i]] ← Y[X[i]] + 1          //Costruzione del vettore delle frequenze
   j ← 1
   for i ← 1 to k do
     while ( Y[i] > 0 ) do          //Ricostruzione del vettore di X 
       X[j] ← i                     //sulla base di Y
       j ← j + 1
       Y[i] ← Y[i] - 1

[modifica] Analisi dell'algoritmo

La complessità dell'Integer Sort è O(N + k) infatti infatti la complessità per inizializzare il vettore e leggerlo per ricostruire X è O(k), mentre la complessità del terzo ciclo for è O(n). Da questo possiamo capire l'utilità dell Integer Sort: infatti se k = O(N) allora la complessità totale dell'algoritmo è O(n).

[modifica] Varianti

Esiste una generalizzazione dell'Integer Sort in grado di ordinare un insieme N di record, le cui chiavi sono comprese nell'intervallo (1,k). Esso è il Bucket Sort.

[modifica] Nota

Questo algoritmo è il bucket sort.


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -