Minor grammatical corrections. (#31228)
This commit is contained in:
committed by
The Coding Aviator
parent
e345970e51
commit
2ed6bc9831
@ -20,7 +20,7 @@ We used count sort because it is a stable sort.
|
|||||||
|
|
||||||
Example: Assume the input array is:
|
Example: Assume the input array is:
|
||||||
|
|
||||||
10,21,17,34,44,11,654,123
|
10, 21, 17, 34, 44, 11, 654, 123
|
||||||
|
|
||||||
Based on the algorithm, we will sort the input array according to the one's digit (least significant digit).
|
Based on the algorithm, we will sort the input array according to the one's digit (least significant digit).
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ Based on the algorithm, we will sort the input array according to the one's digi
|
|||||||
8:</br>
|
8:</br>
|
||||||
9:</br>
|
9:</br>
|
||||||
|
|
||||||
So, the array becomes 10,21,11,123,24,44,654,17
|
So, the array becomes 10, 21, 11, 123, 24, 44, 654, 17
|
||||||
Now, we'll sort according to the ten's digit:
|
Now, we'll sort according to the ten's digit:
|
||||||
|
|
||||||
0:</br>
|
0:</br>
|
||||||
@ -49,7 +49,7 @@ Now, we'll sort according to the ten's digit:
|
|||||||
8:</br>
|
8:</br>
|
||||||
9:
|
9:
|
||||||
|
|
||||||
Now, the array becomes : 10,11,17,21,123,34,44,654
|
Now, the array becomes : 10, 11, 17, 21, 123, 34, 44, 654
|
||||||
Finally , we sort according to the hundred's digit (most significant digit):
|
Finally , we sort according to the hundred's digit (most significant digit):
|
||||||
|
|
||||||
0: 010 011 017 021 034 044</br>
|
0: 010 011 017 021 034 044</br>
|
||||||
@ -63,52 +63,38 @@ Finally , we sort according to the hundred's digit (most significant digit):
|
|||||||
8:</br>
|
8:</br>
|
||||||
9:
|
9:
|
||||||
|
|
||||||
The array becomes : 10,11,17,21,34,44,123,654 which is sorted. This is how our algorithm works.
|
The array becomes : 10, 11, 17, 21, 34, 44, 123, 654 which is sorted. This is how our algorithm works.
|
||||||
|
|
||||||
An implementation in C:
|
An implementation in C:
|
||||||
```
|
```
|
||||||
void countsort(int arr[],int n,int place){
|
void countsort(int arr[],int n,int place){
|
||||||
|
|
||||||
int i,freq[range]={0}; //range for integers is 10 as digits range from 0-9
|
int i,freq[range]={0}; //range for integers is 10 as digits range from 0-9
|
||||||
|
|
||||||
int output[n];
|
int output[n];
|
||||||
|
|
||||||
for(i=0;i<n;i++)
|
for(i=0;i<n;i++)
|
||||||
|
|
||||||
freq[(arr[i]/place)%range]++;
|
freq[(arr[i]/place)%range]++;
|
||||||
|
|
||||||
for(i=1;i<range;i++)
|
for(i=1;i<range;i++)
|
||||||
|
|
||||||
freq[i]+=freq[i-1];
|
freq[i]+=freq[i-1];
|
||||||
|
|
||||||
for(i=n-1;i>=0;i--){
|
for(i=n-1;i>=0;i--){
|
||||||
|
|
||||||
output[freq[(arr[i]/place)%range]-1]=arr[i];
|
output[freq[(arr[i]/place)%range]-1]=arr[i];
|
||||||
|
|
||||||
freq[(arr[i]/place)%range]--;
|
freq[(arr[i]/place)%range]--;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for(i=0;i<n;i++)
|
for(i=0;i<n;i++)
|
||||||
|
|
||||||
arr[i]=output[i];
|
arr[i]=output[i];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void radixsort(ll arr[],int n,int maxx){ //maxx is the maximum element in the array
|
void radixsort(ll arr[],int n,int maxx){ //maxx is the maximum element in the array
|
||||||
|
|
||||||
int mul=1;
|
int mul=1;
|
||||||
|
|
||||||
while(maxx){
|
while(maxx){
|
||||||
|
|
||||||
countsort(arr,n,mul);
|
countsort(arr,n,mul);
|
||||||
|
|
||||||
mul*=10;
|
mul*=10;
|
||||||
|
|
||||||
maxx/=10;
|
maxx/=10;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user