Counting sort: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m robot Aggiungo: cs:Counting sort |
|||
Riga 53:
===[[C++]]===
<source lang="cpp">
//Cerca i valori minimi e massimi nell'array
int i, min = nums[0], max = min;
int max=A[0];▼
if (nums[i] < min)
for(; i<lengthA; i++){▼
min = nums[i];
max = nums[i];
}
//Crea un array per contare (come nel bucket sort)
int distinct_element_count = max - min + 1;
int* counts = new int[distinct_element_count];
▲ for(i=0; i<lengthA; i++)
for(i=0; i<distinct_element_count; ++i)
counts[i] = 0;
//Per ogni valore nell'array da ordinare
for(i=0; i<lengthC; i++){▼
//aumenta di 1 il corrispondente elemento nell'array di conteggio
//(Esattamente come nel bucket sort)
++counts[ nums[i] - min ];
//Inserisce nell'array principale i valori contati
▲ }
for(int z=0; z<counts[i-min]; z++)
nums[j++] = i;
}
</source>
|