Write menu driven program for Insertion sort, Shell sort, and Quick sort

On-campus and online computer science courses to Learn the basic concepts of Computer Science.This tutorial will cover c ,c++, java, data structure and algorithm,computer graphics,microprocessor,analysis of algorithms,Digital Logic Design and Analysis,computer architecture,computer networks,operating system.
code in C:
#include<stdio.h>
#include<conio.h>
int arr[100],n;
void InsertSort();
void QuickSort(int,int);
int partition(int,int);
void swap(int,int);
void ShellSort(int);
int main()
{
 int choice;
 int i,temp;
 printf("Enter the number of elements:-\n");
 scanf("%d",&n);
 printf("Enter %d elements:-\n",n);
 for(i=0;i<n;i++)
 {
  scanf("%d",&arr[i]);
 }
 
 printf("Select your choice:-\n");
 printf("1. Insertion Sort\n");
 printf("2. Quicksort\n");
 printf("3. Shellsort\n");
 x:scanf("%d",&choice);
 switch(choice)
 {
  case 1:
   InsertSort();
   break;
  case 2:
   QuickSort(0,n-1);
   break;
  case 3:
   ShellSort(5);
   break;
  default:
   printf("Enter 1,2 or 3.\n");
   goto x;
 }
 
 printf("\n\nSorted Array:-\n");
 for(i=0;i<n;i++)
 {
  printf("%d ",arr[i]);
 }
 return 0;
}

//Insert Sort
void InsertSort()
{
 int temp,i,j,k;
 for(i=1;i<n;i++)
 {
  temp=arr[i];
  j=i-1;
  while((j>=0) && (arr[j]>temp))
  {
   arr[j+1]=arr[j];
   j=j-1;
  }
  arr[j+1]=temp;
  printf("\nPass %d: ",i);
  for(k=0;k<n;k++)
  {
   printf("%d ",arr[k]);
  }
 }
}

//Quick Sort
void QuickSort(int low, int high)
{
 int m;
 if(low<high)
 {
  m=partition(low,high);
  QuickSort(low,m-1);
  QuickSort(m+1,high);
 }
}
int partition(int low, int high)
{
 int pivot=arr[low];
 int i=low;
 int j=high;
 while(i<=j)
 {
  while(arr[i]<=pivot)
   i++;
  while(arr[j]>pivot)
   j--;
  if(i<j)
   swap(i,j);
 }
 swap(low,j);
 return j;
}
void swap(int i,int j)
{
 int temp;
 int k;
 temp = arr[i];
 arr[i]=arr[j];
 arr[j]=temp;
 printf("\nPass: ");
 for(k=0;k<n;k++)
 {
  printf("%d ",arr[k]);
 }

}

//ShellSort
void ShellSort(int incr)
{
 int i,j,k,temp;
 while(incr>=1)
 {
  for(j=incr;j<n;j++)
  {
   int temp=arr[j];
   for(i=j-incr;i>=0 && temp<arr[i];i=i-incr)
    arr[i+incr]=arr[i];
   arr[i+incr]=temp;
   printf("\nPass: ");
   for(k=0;k<n;k++)
    printf("%d ",arr[k]);
  }
  incr=incr-2;
 }
}
output:-
Enter the number of elements:-
5
Enter 5 elements:-
29
21
27
64
20
Select your choice:-
1. Insertion Sort
2. Quicksort
3. Shellsort
1

Pass 1: 21 29 27 64 20
Pass 2: 21 27 29 64 20
Pass 3: 21 27 29 64 20
Pass 4: 20 21 27 29 64

Sorted Array:-
20 21 27 29 64
--------------------------------

0 comments: