Saturday, 9 August 2014

Insertion, selection, and bubble sort

The following is a program for selection, insertion and bubble sort. If you have any doubts please let me know.
#include<stdio.h>
void basd(int[],int);
void insasd(int[],int);
void selasd(int[],int);
int i,j,k,temp;
main()
{
  int ch,a[100],i,j,n;
   printf("Enter the number of elements:");
 scanf("%d",&n);
 printf("Enter the array elements:");
 for(i=0;i<n;i++)
 {
  scanf("%d",&a[i]);
 }
 do
 {
  printf("\nMenu:\n1.bubble\n2.selection\n3.insertion\n4.Exit\n");
  printf("Enter your choice:");
  scanf("%d",&ch);
  switch(ch)
  {
   case 1:
        basd(a,n);
        break;
   case 2:
        selasd(a,n);
        break;
   case 3:
        insasd(a,n);
        break;
    case 4:break;
    default:printf("Wrong choice!");
          break;
  }
}while(ch!=4);
}

void selasd(int b[],int n)
{
 int i,j,temp,a[50],k;
  printf("\nSELECTION SORT\n");
  printf("Unsorted array:\n");
 for(i=0;i<n;i++)
 printf("%d ",b[i]);
 printf("\n");
 for(i=0;i<n;i++)
  a[i]=b[i];

  for(i=0;i<n;i++)
  {
   for(j=i+1;j<n;j++)
   {
     if(a[j]<a[i])
     {
       temp=a[j];
       a[j]=a[i];
       a[i]=temp;
     }
   }

  }
  printf("\nAfter Selection Sort:");
  for(i=0;i<n;i++)
   printf(" %d",a[i]);
}

void insasd(int b[],int n)
{
  int a[50];
 printf("\nINSERTION SORT\n");
  printf("Unsorted array:\n");
 for(i=0;i<n;i++)
 printf("%d ",b[i]);
 printf("\n");
  for(i=0;i<n;i++)
  a[i]=b[i];
 for(i=1;i<n;i++)
 {
  temp=a[i];
  j=i-1;
  while(temp<a[j])
  {
   a[j+1]=a[j];
   j=j-1;
  }
  a[j+1]=temp;
  printf("\n");
 }
 printf("\nSorted array is:");
 for(i=0;i<n;i++)
 {
  printf(" %d ",a[i]);
 }
}
void basd(int b[],int n)
{
 int i,j,temp,a[50],k;
 printf("\nBUBBLE SORT\n");
  printf("Unsorted array:\n");
 for(i=0;i<n;i++)
 printf("%d ",b[i]);
 printf("\n");
  for(i=0;i<n;i++)
  a[i]=b[i];
 for(i=0;i<n;i++)
 {
  for(j=0;j<(n-i)-1;j++)
  {
    if(a[j]>a[j+1])
    {
     temp=a[j];
     a[j]=a[j+1];
     a[j+1]=temp;
    }
  }
 }
 printf("\nAfter Bubble Sort");
  for(i=0;i<n;i++)
   printf(" %d",a[i]);
   printf("\n");
}







No comments:

Post a Comment