From b8e3ecf6b2964611048d89959681108e5a9efb70 Mon Sep 17 00:00:00 2001 From: PranavBharadwaj-1328 <39663257+PranavBharadwaj-1328@users.noreply.github.com> Date: Wed, 23 Oct 2019 13:15:00 +0530 Subject: [PATCH] Add files via upload --- 6.Sorting/countingsort.c | 66 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 6.Sorting/countingsort.c diff --git a/6.Sorting/countingsort.c b/6.Sorting/countingsort.c new file mode 100644 index 0000000..80da2b6 --- /dev/null +++ b/6.Sorting/countingsort.c @@ -0,0 +1,66 @@ +#include +#include + +int max(int a[],int n); +void countsort(int a[],int n); + +int main() +{ + int i,n,a[32]; + printf("Enter no. elements ="); + scanf("%d",&n); + for (i = 0;i < n;i++) { + printf("Enter %dth element =",i+1); + scanf("%d",&a[i]); + } + countsort(a,n); + printf("Sorted Array:\n"); + for (i = 0;i < n;i++) { + printf("%d ",a[i]); + } + printf("\n"); +} + +int max(int a[],int n) +{ + int i,max; + max = a[0]; + for (i = 0;i < n;i++) { + if (a[i] >= max) { + max = a[i]; + } + } + return max; +} + +int min(int a[],int n) +{ + int i,min; + min = a[0]; + for (i = 0;i < n;i++) { + if (a[i] <= min) { + min = a[i]; + } + } + return min; +} + +void countsort(int a[],int n) +{ + int i,Max,Min,j = 0; + Max = max(a,n); + Min = min(a,n); + int b[Max]; + for (i = 0;i <= Max;i++) { + b[i] = 0; + } + for (i = 0;i < n;i++) { + b[a[i]] = 1; + } + for (i = Min;i <= Max;i++) { + if (b[i] == 1) { + a[j] = i; + j++; + } + } +}