Sei sulla pagina 1di 7

//a program to implement quick sort

#include<stdio.h>
#include<conio.h>
int main()
{
void selectionsort(int a[100],int n);
int array[100]={0},n=0,c;
clrscr();
printf(" Selection Sort \n");
printf("How many values do you want to enter ? : ");
scanf("%d",&n);
printf("\n");
for(c=0;c<n;c++)
{
printf("Value %d : ",c+1);
scanf("%d",&array[c]);
}
selectionsort(array,n);

printf("\n\nSorted Array : ");


for(c=0;c<n;c++)
{
printf("%d ",array[c]);
}

getch();
return(0);
}
void selectionsort(int array[],int n)
{
int c,min,i,temp;

for(c=0;c<n;c++)
{
min=c;
for(i=c;i<n;i++)
{
if(array[i]<array[min])
{
min=i;
}
}
temp=array[c];
array[c]=array[min];
array[min]=temp;
}
}
//a program to implement quicksort
#include<stdio.h>
#include<conio.h>
void main()
{
int partition(int arr[10],int beg,int end);
void quicksort(int arr[10],int beg,int end);
int i,arr[10],n;
clrscr();
printf("\n number of elements to be sorted by quick sort: ");
scanf("%d",&n);
printf("\nEnter the list of numbers:-\n");
for(i=0;i<n;i++)
scanf("%d",&arr[i]);
quicksort(arr,0,n-1);
printf("\nQuick Sort");
printf("\n\nThe sorted list is:-\n");
for(i=0;i<n;i++)
printf("\n%d ",arr[i]);
getch();
}

int partition(int arr[10],int beg,int end)


{
int i=beg-1,j,temp;
for(j=beg;j<=end-1;j++)
{ if(arr[j]<=arr[end])
{
i++;
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
temp=arr[i+1];
arr[i+1]=arr[end];
arr[end]=temp;
return i+1;
}

void quicksort(int arr[10],int beg,int end)


{
int q;
if(beg<end)
{ q=partition(arr,beg,end);
quicksort(arr,beg,q-1);
quicksort(arr,q+1,end);
}
}

//a program to implement mearge sort


#include<stdio.h>
#include<conio.h>
void merge(int arr[50],int beg,int mid,int end)
{
int i,j,k=0;
int n1=(mid-beg)+1,n2=end-mid;
int tmp1[50],tmp2[50];
for(i=0;i<n1;i++)
tmp1[i]=arr[beg+i];
for(j=0;j<n2;j++)
tmp2[j]=arr[mid+j+1];
tmp1[n1]=tmp2[n2]=32767;
i=j=0;
for(k=beg;k<=end;k++)
{
if(tmp1[i]<=tmp2[j])
{
arr[k]=tmp1[i];
i++;
}
else
{
arr[k]=tmp2[j];
j++;
}
}
}

void mergesort(int arr[],int beg,int end)


{

int mid,i;
if(beg<end)
{
mid=(beg+end)/2;
mergesort(arr,beg,mid);
mergesort(arr,mid+1,end);
merge(arr,beg,mid,end);
}

}
void main()
{
clrscr();
void mergesort(int *,int,int);
int arr[100],i,n,beg=0,end;
printf("\Merge sort");
printf("\n Enter no. of elements:");
scanf("%d",&n);
end=n;
for(i=1;i<=n;i++)
{
printf("\n Element %d " ,i);
scanf("%d",&arr[i]);
}
mergesort(arr,beg,end);
printf("\n Sorted list:");
for(i=1;i<=n;i++)
printf("\n %d",arr[i]);
getch();
}
//a program to implement Heap Sort
#include<conio.h>
#include<stdio.h>
void build_heap(int arr[],int n);
void heapify(int arr[],int i,int k);

void heap_sort(int arr[],int n)


{
build_heap(arr,n);
for(int i=n-1;i>=1;i--)
{
int t1;
t1=arr[i];
arr[i]=arr[0];
arr[0]=t1;
heapify(arr,0,i);
}
}

void build_heap(int arr[],int n)


{
for(int i=n/2;i>=0;i--)
heapify(arr,i,n);
}

void heapify(int arr[],int i,int k)


{
int larger=i;
int l=((2*i)+1);
int r=((2*i)+2);
if((l<k)&&(arr[l]>arr[larger]))
larger=l;
if((r<k)&&(arr[r]>arr[larger]))
larger=r;
if(larger!=i)
{
int t2;
t2=arr[i];
arr[i]=arr[larger];
arr[larger]=t2;
heapify(arr,larger,k);
}
}
void main()
{
clrscr();
int i,p,n;
int arr[50];
printf("enter the no. of element in heap :- ");
scanf("%d",&n);
printf("\nenter the element to be sorted:-\n");
for(i=0;i<n;i++)
scanf("%d",&arr[i]);

printf("\t\t\t\tHEAP SORT\n\n\n");
heap_sort(arr,n);
for(i=0;i<n;i++)
printf("%d\t",arr[i]);
getch();

Potrebbero piacerti anche