BUBBLE SORT
#include <stdio.h>
int main()
{
int array[100], n, c, d, swap;
printf("Enter number of elements\n");
scanf("%d", &n);
printf("Enter %d integers\n", n);
for (c = 0; c < n; c++)
scanf("%d", &array[c]);
for (c = 0 ; c < ( n - 1 ); c++)
{
for (d = 0 ; d < n - c - 1; d++)
{
if (array[d] > array[d+1]) /* For decreasing order use < */
{
swap = array[d];
array[d] = array[d+1];
array[d+1] = swap;
}
}
}
printf("Sorted list in ascending order:\n");
for ( c = 0 ; c < n ; c++ )
printf("%d\n", array[c]);
return 0;
}
SELECTION SORT
#include<stdio.h>
main()
{
int array[100], n, c, d, position, swap;
printf("Enter number of elements\n");
scanf("%d", &n);
printf("Enter %d integers\n", n);
for ( c = 0 ; c < n ; c++ )
scanf("%d", &array[c]);
for ( c = 0 ; c < ( n - 1 ) ; c++ )
{
position = c;
for ( d = c + 1 ; d < n ; d++ )
{
if ( array[position] > array[d] )
position = d;
}
if ( position != c )
{
swap = array[c];
array[c] = array[position];
array[position] = swap;
}
}
printf("Sorted list in ascending order:\n");
for ( c = 0 ; c < n ; c++ )
printf("%d\n", array[c]);
return 0;
}
INSERTION SORT
/* insertion sort ascending order */
#include <stdio.h>
int main()
{
int n, array[1000], c, d, t;
printf("Enter number of elements\n");
scanf("%d", &n);
printf("Enter %d integers\n", n);
for (c = 0; c < n; c++) {
scanf("%d", &array[c]);
}
for (c = 1 ; c <= n - 1; c++) {
d = c;
while ( d > 0 && array[d] < array[d-1]) {
t = array[d];
array[d] = array[d-1];
array[d-1] = t;
d--;
}
}
printf("Sorted list in ascending order:\n");
for (c = 0; c <= n - 1; c++) {
printf("%d\n", array[c]);
}
return 0;
}
MERGE SORT
#include<stdio.h>
#define MAX 100
void mergesort(int list[],int lb,int ub);
void merge(int list[],int lb,int mid,int ub);
int main()
{
int list[MAX];
int i,size,mid;
printf("\n ENTER THE SIZE OF THE LIST=");
scanf("%d",&size);
printf("\n ENTER THE LIST ONE BY ONE\n");
for(i=0;i<size;i++)
{
scanf("%d ",&list[i]);
}
mergesort(list,0,size-1);
printf("\n THE SORTED LIST IS ....");
for(i=0;i<size;i++)
{
printf("%d ",list[i]);
}
return 0;
}
void mergesort(int list[],int lb,int ub)
{
int mid;
if(lb<ub)
{
mid=(lb+ub)/2;
mergesort(list,lb,mid);
mergesort(list,mid+1,ub);
merge(list,lb,mid+1,ub);
}
}
void merge(int list[],int lb,int mid,int ub)
{
int mergelist[MAX];
int ptr1,ptr2,ptr3;
int i;
ptr1=lb;
ptr2=mid;
ptr3=lb;
//printf("%d %d ",ptr1,ptr2);
while(ptr1<mid&&ptr2<=ub)
{
if(list[ptr1]<=list[ptr2])
{
mergelist[ptr3]=list[ptr1];
ptr1++;
ptr3++;
}
else
{
mergelist[ptr3]=list[ptr2];
ptr2++;
ptr3++;
}
}
while(ptr1<mid)
{
mergelist[ptr3]=list[ptr1];
ptr1++;
ptr3++;
}
while(ptr2<=ub)
{
mergelist[ptr3]=list[ptr2];
ptr2++;
ptr3++;
}
for(i=lb;i<ptr3;i++)
{
list[i]=mergelist[i];
}
}
QUICK SORT
#include<stdio.h>
#define MAX 100
void partition(int key,int list[],int lb,int ub);
void quicksort(int list[],int lb,int ub);
int main()
{
int list[MAX];
int i,size,pos,temp;
int lb,ub;
printf("\nENTER THE SIZE OF THE LIST=");
scanf("%d",&size);
printf("\nENTER THE LIST ONE BY ONE=");
for(i=0;i<size;i++)
{
scanf("%d ",&list[i]);
}
quicksort(list,0,size-1);
//print the sorted list
printf("THE SORTED LIST IS...\n");
for(i=0;i<size;i++)
{
printf("%d ",list[i]);
}
return 0;
}
void quicksort(int list[],int lb,int ub)
{
int key;
key=list[lb]; lb++;
partition(key,list,lb,ub);
}
void partition(int key,int list[],int lb,int ub)
{
int i,j,temp;
i=lb;
j=ub;
while(i<=j)
{
while(list[i]<=key)
i++;
while(list[j]>key)
j--;
if(i<=j)
{
temp=list[i];
list[i]=list[j];
list[j]=temp;
}
}
temp=list[j];
list[j]=list[lb-1];
list[lb-1]=temp;
if(j>lb)
quicksort(list,lb,j-1);
if(j>ub)
quicksort(list,j+1,ub);
}
#include <stdio.h>
int main()
{
int array[100], n, c, d, swap;
printf("Enter number of elements\n");
scanf("%d", &n);
printf("Enter %d integers\n", n);
for (c = 0; c < n; c++)
scanf("%d", &array[c]);
for (c = 0 ; c < ( n - 1 ); c++)
{
for (d = 0 ; d < n - c - 1; d++)
{
if (array[d] > array[d+1]) /* For decreasing order use < */
{
swap = array[d];
array[d] = array[d+1];
array[d+1] = swap;
}
}
}
printf("Sorted list in ascending order:\n");
for ( c = 0 ; c < n ; c++ )
printf("%d\n", array[c]);
return 0;
}
SELECTION SORT
#include<stdio.h>
main()
{
int array[100], n, c, d, position, swap;
printf("Enter number of elements\n");
scanf("%d", &n);
printf("Enter %d integers\n", n);
for ( c = 0 ; c < n ; c++ )
scanf("%d", &array[c]);
for ( c = 0 ; c < ( n - 1 ) ; c++ )
{
position = c;
for ( d = c + 1 ; d < n ; d++ )
{
if ( array[position] > array[d] )
position = d;
}
if ( position != c )
{
swap = array[c];
array[c] = array[position];
array[position] = swap;
}
}
printf("Sorted list in ascending order:\n");
for ( c = 0 ; c < n ; c++ )
printf("%d\n", array[c]);
return 0;
}
INSERTION SORT
/* insertion sort ascending order */
#include <stdio.h>
int main()
{
int n, array[1000], c, d, t;
printf("Enter number of elements\n");
scanf("%d", &n);
printf("Enter %d integers\n", n);
for (c = 0; c < n; c++) {
scanf("%d", &array[c]);
}
for (c = 1 ; c <= n - 1; c++) {
d = c;
while ( d > 0 && array[d] < array[d-1]) {
t = array[d];
array[d] = array[d-1];
array[d-1] = t;
d--;
}
}
printf("Sorted list in ascending order:\n");
for (c = 0; c <= n - 1; c++) {
printf("%d\n", array[c]);
}
return 0;
}
MERGE SORT
#include<stdio.h>
#define MAX 100
void mergesort(int list[],int lb,int ub);
void merge(int list[],int lb,int mid,int ub);
int main()
{
int list[MAX];
int i,size,mid;
printf("\n ENTER THE SIZE OF THE LIST=");
scanf("%d",&size);
printf("\n ENTER THE LIST ONE BY ONE\n");
for(i=0;i<size;i++)
{
scanf("%d ",&list[i]);
}
mergesort(list,0,size-1);
printf("\n THE SORTED LIST IS ....");
for(i=0;i<size;i++)
{
printf("%d ",list[i]);
}
return 0;
}
void mergesort(int list[],int lb,int ub)
{
int mid;
if(lb<ub)
{
mid=(lb+ub)/2;
mergesort(list,lb,mid);
mergesort(list,mid+1,ub);
merge(list,lb,mid+1,ub);
}
}
void merge(int list[],int lb,int mid,int ub)
{
int mergelist[MAX];
int ptr1,ptr2,ptr3;
int i;
ptr1=lb;
ptr2=mid;
ptr3=lb;
//printf("%d %d ",ptr1,ptr2);
while(ptr1<mid&&ptr2<=ub)
{
if(list[ptr1]<=list[ptr2])
{
mergelist[ptr3]=list[ptr1];
ptr1++;
ptr3++;
}
else
{
mergelist[ptr3]=list[ptr2];
ptr2++;
ptr3++;
}
}
while(ptr1<mid)
{
mergelist[ptr3]=list[ptr1];
ptr1++;
ptr3++;
}
while(ptr2<=ub)
{
mergelist[ptr3]=list[ptr2];
ptr2++;
ptr3++;
}
for(i=lb;i<ptr3;i++)
{
list[i]=mergelist[i];
}
}
QUICK SORT
#include<stdio.h>
#define MAX 100
void partition(int key,int list[],int lb,int ub);
void quicksort(int list[],int lb,int ub);
int main()
{
int list[MAX];
int i,size,pos,temp;
int lb,ub;
printf("\nENTER THE SIZE OF THE LIST=");
scanf("%d",&size);
printf("\nENTER THE LIST ONE BY ONE=");
for(i=0;i<size;i++)
{
scanf("%d ",&list[i]);
}
quicksort(list,0,size-1);
//print the sorted list
printf("THE SORTED LIST IS...\n");
for(i=0;i<size;i++)
{
printf("%d ",list[i]);
}
return 0;
}
void quicksort(int list[],int lb,int ub)
{
int key;
key=list[lb]; lb++;
partition(key,list,lb,ub);
}
void partition(int key,int list[],int lb,int ub)
{
int i,j,temp;
i=lb;
j=ub;
while(i<=j)
{
while(list[i]<=key)
i++;
while(list[j]>key)
j--;
if(i<=j)
{
temp=list[i];
list[i]=list[j];
list[j]=temp;
}
}
temp=list[j];
list[j]=list[lb-1];
list[lb-1]=temp;
if(j>lb)
quicksort(list,lb,j-1);
if(j>ub)
quicksort(list,j+1,ub);
}
SHELL SORT
#include<stdio.h>
#define MAX 100
int main()
{
int n,i,j,gap,X;
int arr[MAX];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d ",&arr[i]);
}
gap=n/2;
while(gap)
{
for(i=gap;i<n;i++)
{
X=arr[i];
for(j=i-gap;j>=0&&arr[j]>X;j-=gap)
{
arr[j+gap]=arr[j];
}
arr[j+gap]=X;
}
gap=gap/2;
}
printf("\n");
for(i=0;i<n;i++)
{
printf("%d ",arr[i]);
}
}
No comments:
Post a Comment