Counting sort: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Riga 49:
==Codice in Linguaggio C==
<source lang="c">
int* countingSort(int *varray, int nlength) //v = vettore da ordinare, n = lunghezza vettore{
int index, interval, *count, minimum, maximum, *result = NULL;
{
int *b,*c,i,li,ls; // li & ls = limite inferiore e superiore
ls=li=v[0];
 
forif(i=1;i<n;i++length > 0) {
minimum = maximum = array[0];
{
if(v[i]<li)
li=v[i];
if(v[i]>ls)
ls=v[i];
}
 
for(index = 1; index < length; index++) {
c=(int*)malloc(sizeof(int)*(ls-li+1));
if(array[index] < minimum)
b=(int*)malloc(sizeof(int)*n);
li minimum =v array[iindex];
 
if(array[index] > maximum)
for(i=0;i<=(ls-li);i++)
c maximum = array[iindex]=0;
{ }
 
interval = maximum - minimum + 1;
for(i=0;i<n;i++)
b count = (int*)malloc calloc(interval, sizeof(int)*n);
c[v[i]]++;
c result = (int*)malloc calloc(length, sizeof(int)*(ls-li+1));
 
for(iindex =1 0;i index <=(ls-li) length;i index++)
c count[i]+=carray[iindex] -1 minimum]++;
 
for(ilength =n-1;i> 0, index = 0;i-- index < interval; index++)
while(count[index]-- > 0)
{
b result[c[v[i]]-1length++] =v[i] index + minimum;
c[v[i]]--;
}
 
return bresult;
}
</source>
 
== Bibliografia ==
* {{cita libro| Thomas | Cormen | Introduction to Algorithms | 1998| The MIT Press | Cambridge, Massachussetts | coautori=Charles E. Leiserson, [[Ronald Rivest]]| capitolo=Sorting in Linear Time | ed=2 | pagine=pp. 175-177}}