mirror of
https://github.com/TheAlgorithms/C
synced 2025-02-07 17:24:11 +03:00
Merge pull request #497 from ubc1729/master
Indented "counting Sort" and fixed compilation errors
This commit is contained in:
commit
70c11c370a
@ -1,19 +1,36 @@
|
|||||||
|
/*
|
||||||
|
> Counting sort is a sorting technique based on keys between a specific range.
|
||||||
|
> integer sorting algorithm
|
||||||
|
> Worst-case performance O(n+k)
|
||||||
|
> Stabilized by prefix sum array
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
int i, n, l = 0;
|
int i, n, l = 0;
|
||||||
|
|
||||||
|
printf("Enter size of array = ");
|
||||||
scanf("%d", &n);
|
scanf("%d", &n);
|
||||||
|
|
||||||
int a[n];
|
int a[n];
|
||||||
|
printf("Enter %d elements in array :\n", n);
|
||||||
for(i = 0; i < n; i++)
|
for(i = 0; i < n; i++)
|
||||||
{
|
{
|
||||||
scanf("%d", &a[i]);
|
scanf("%d", &a[i]);
|
||||||
if(a[i] > l)
|
if(a[i] > l)
|
||||||
l = a[i];
|
l = a[i];
|
||||||
}
|
}
|
||||||
int b[l+1]={0};
|
|
||||||
|
int b[l + 1];
|
||||||
|
memset(b, 0, (l + 1) * sizeof(b[0]));
|
||||||
|
|
||||||
for(i = 0; i < n; i++)
|
for(i = 0; i < n; i++)
|
||||||
b[a[i]]++; //hashing number to array index
|
b[a[i]]++; //hashing number to array index
|
||||||
for(i=0;i<(l+1);i++)
|
|
||||||
|
for(i = 0; i < (l + 1); i++) //unstable , stabilized by prefix sum array
|
||||||
{
|
{
|
||||||
if(b[i] > 0)
|
if(b[i] > 0)
|
||||||
{
|
{
|
||||||
@ -24,5 +41,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user