Monday, February 10, 2014

C PROGRAM FOR SELECTION SORT

/*C PROGRAM FOR SELECTION SORT*/

#include<stdio.h>
#include<conio.h>
int main() {
   int array[50], 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]);
   getch();
   return 0;
}

/*OUTPUT:-
Enter number of elements
5
Enter 5 integers
2
8
1
3
45
Sorted list in ascending order:
1
2
3
8
45 */

C PROGRAM FOR QUICK SORT

/*C PROGRAM FOR QUICK SORT*/

#include<stdio.h>
#include<conio.h>
void quicksort(int [10], int, int);
int main( ) {
    int x[20],size,i;
    clrscr();
    printf("Enter size of the array: " );
    scanf("%d",&size);
    printf("Enter %d elements : " , size);
    for(i=0;i<size;i++)
    scanf("%d",&x[i]);
    quicksort(x,0,size-1);
    printf(" Sorted elements : " );
    for(i=0;i<size;i++)
    printf(" %d " , x[i]);
    getch();
    return 0;
    }
void quicksort(int x[10],int first, int last) {
     int pivot,j,temp,i;
     if(first<last) {
          pivot=first;
          i=first;
          j=last;
          while(i<j) {
               while(x[i]<=x[pivot]&&i<last)
               i++;
               while(x[j]>x[pivot])
               j--;
               if(i<j) {
                   temp = x[i];
                   x[i]=x[j];
                   x[j]=temp;
                   }
                   }
                   temp = x[pivot];
                   x[pivot] = x[j];
                   x[j]=temp;
                   quicksort(x,first,j-1);
                   quicksort(x,j+1,last);
                   }
                   }
/*OUTPUT:
Enter size of the array: 4
Enter 4 elements : 12
45
3
5
 Sorted elements :  3  5  12  45 */

C PROGRAM FOR MERGE SORT

/*C PROGRAM FOR MERGE SORT*/

#include<stdio.h>
#include<conio.h>
#define MAX 50
void mergeSort(int arr[],int low,int mid,int high);
void partition(int arr[],int low,int high);

int main()
{
    int merge[MAX],i,n;
     clrscr();
    printf("Enter the total number of elements: ");
    scanf("%d",&n);

    printf("Enter the elements which to be sort: ");
    for(i=0;i<n;i++){
     scanf("%d",&merge[i]);
    }

    partition(merge,0,n-1);

    printf("After merge sorting elements are: ");
    for(i=0;i<n;i++){
     printf("%d ",merge[i]);
    }
     getch();
   return 0;
}

void partition(int arr[],int low,int high){

    int mid;

    if(low<high){
     mid=(low+high)/2;
     partition(arr,low,mid);
     partition(arr,mid+1,high);
     mergeSort(arr,low,mid,high);
    }
}

void mergeSort(int arr[],int low,int mid,int high){

    int i,m,k,l,temp[MAX];

    l=low;
    i=low;
    m=mid+1;

    while((l<=mid)&&(m<=high)){

     if(arr[l]<=arr[m]){
         temp[i]=arr[l];
         l++;
     }
     else{
         temp[i]=arr[m];
         m++;
     }
     i++;
    }

    if(l>mid){
     for(k=m;k<=high;k++){
         temp[i]=arr[k];
         i++;
     }
    }
    else{
     for(k=l;k<=mid;k++){
         temp[i]=arr[k];
         i++;
     }
    }

    for(k=low;k<=high;k++){
     arr[k]=temp[k];
    }
}

/*OUTPUT:
Enter the total number of elements: 4
Enter the elements which to be sort: 102
450
32
1
After merge sorting elements are: 1 32 102 450 */

C PROGRAM FOR INSERTION SORT

/*C PROGRAM FOR INSERTION SORT*/

#include<stdio.h>
#include<conio.h>
int main() {
int n ,array[50], 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]);
    getch();
    return 0 ;
 }

/*OUTPUT:-
Enter number of elements
5
Enter 5 integers
4
8
2
1
65
Sorted list in ascending order:
1
2
4
8
65 */

C PROGRAM FOR HEAP SORTING

/*C PROGRAM FOR HEAP SORTING*/

#include<stdio.h>
#include<conio.h>
void manage(int *, int);
void heapsort(int *, int, int);
int main()
{
 int arr[20];
 int i,j,size,tmp,k;
// clrscr();
 printf("\n\t------- Heap sorting method -------\n\n");
 printf("Enter the number of elements to sort : ");
 scanf("%d",&size);
 for(i=1; i<=size; i++)
 {
   printf("Enter %d element : ",i);
   scanf("%d",&arr[i]);
   manage(arr,i);
 }
 j=size;
 for(i=1; i<=j; i++)
 {
   tmp=arr[1];
   arr[1]=arr[size];
   arr[size]=tmp;
   size--;
   heapsort(arr,1,size);
 }
 printf("\n\t------- Heap sorted elements -------\n\n");
 size=j;
 for(i=1; i<=size; i++)
     printf("%d ",arr[i]);
 getch();
 return 0;
}


void manage(int *arr, int i)
{
 int tmp;
 tmp=arr[i];
 while((i>1)&&(arr[i/2]<tmp))
 {
   arr[i]=arr[i/2];
   i=i/2;
 }
 arr[i]=tmp;
}


void heapsort(int *arr, int i, int size)
{
 int tmp,j;
 tmp=arr[i];
 j=i*2;
 while(j<=size)
 {
   if((j<size)&&(arr[j]<arr[j+1]))
      j++;
   if(arr[j]<arr[j/2])
      break;
   arr[j/2]=arr[j];
   j=j*2;
 }
 arr[j/2]=tmp;
}

/*OUTPUT:

        ------- Heap sorting method -------

Enter the number of elements to sort : 4
Enter 1 element : 12
Enter 2 element : 45
Enter 3 element : 3
Enter 4 element : 8

        ------- Heap sorted elements -------

3 8 12 45 */

C PROGRAM FOR BINARY SEARCH

/*C PROGRAM FOR BINARY SEARCH*/

#include<stdio.h>
#include<conio.h>
int main() {
int a[50],i,n,key,lb,ub,mid;
clrscr();
printf("Enter no. of terms=");
scanf("%d",&n);
printf("Enter the terms in ascending order:\n");
for(i=0;i<n;i++)
    scanf("%d", &a[i]);
lb = 0;
ub = n-1;
printf("Enter key to be searched=");
scanf("%d",&key);
mid = (lb+ub)/2;
while(lb<=ub){
    if(a[mid]<key)
    lb = mid +1;
    else if(a[mid]==key)
    {
    printf("%d found at location %d",key,mid+1);
    break;
    }
    else
    ub = mid - 1;
    mid = (lb+ub)/2;
}
if(lb>ub)
printf("%d is not found in the list",key);
getch();
return 0;
}

/*OUTPUT:
Enter no. of terms=4
Enter the terms in ascending order:
10
23
56
78
Enter key to be searched=56
56 found at location 3*/