M 3 Sorting Updated
M 3 Sorting Updated
INSERTION SORT:
#include <stdio.h>
int main()
{
int n, array[1000], c, d, t, flag = 0;
scanf("%d", &n);
for (c = 0; c < n; c++)
scanf("%d", &array[c]);
for (c = 1 ; c <= n - 1; c++)
{
t = array[c];
for (d = c - 1 ; d >= 0; d- -)
{
if (array[d] > t)
{
array[d+1] = array[d];
flag = 1;
}
else
break;
}
if (flag)
array[d+1] = t;
}
printf("INSERTION SORT\n");
for (c = 0; c <= n - 1; c++) {
printf("%d\n", array[c]);
}
return 0;
}
Best case complexity of insertion sort is O(n), average and the worst
case complexity is O(n2).
INSERTION SORT:
#include <stdio.h>
void insertionsort(int arr[], int n)
{
int i, key, j;
for (i = 1; i < n; i++)
{
key = arr[i];
j = i - 1;
while (j >= 0 && arr[j] > key)
{
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
}
int main()
{
int n, arr[1000], c;
scanf("%d", &n);
for (c = 0; c < n; c++)
scanf("%d", &arr[c]);
insertionsort(arr, n);
for (c = 0; c < n; c++)
printf("%d\n", arr[c]);
return 0;
}
The best case time complexity of insertion sort is O(N) under the
condition that the array is already sorted while the worst case reaches
up to O(N2) and on deducing the average case, it goes on to be O(N2) as
well.
SELECTION SORT:
#include <stdio.h>
void selectionsort(int array[], int size){
int i, j, imin;
for(i = 0; i<size-1; i++) {
imin = i; //get index of minimum data
for(j = i+1; j<size; j++)
if(array[j] < array[imin])
imin = j;
//placing in correct position
int temp;
temp = array[i];
array[i] = array[imin];
array[imin] = temp;
}
}
int main()
{
int n, arr[1000], c;
scanf("%d", &n);
for (c = 0; c < n; c++)
scanf("%d", &arr[c]);
selectionsort(arr, n);
printf("SELECTION SORT \n");
for(int c = 0; c<n; c++)
printf("%d ", arr[c]);
return 0;
}
BUBBLE SORT:
COUNTING SORT:
#include<stdio.h>
int countingsort(int a[], int n){
int i, j;
int output[15], c[100];
for (i = 0; i < 100; i++)
c[i] = 0;
for (j = 0; j < n; j++)
++c[a[j]];
for (i = 1; i <= 99; i++)
c[i] += c[i-1];
for (j = n-1; j >= 0; j--) {
output[c[a[j]] - 1] = a[j];
--c[a[j]];
}
printf("COUNTING SORTING");
for (i = 0; i<n; i++)
printf("%d ", output[i]);
}
void main(){
int n, arr[1000], c;
scanf("%d", &n);
for (c = 0; c < n; c++)
scanf("%d", &arr[c]);
countingsort(arr, n);
}