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 */