sorting programs

16
//...........HEAPSORT................... ......... #include<stdio.h> #include<conio.h> #define MAXSIZE 5 #define MAX 15 void main() { int a[MAX],n,i,s,f,item,value; clrscr(); printf("Enter the number of elements\n"); scanf("%d",&n); printf("Enter %d elements one by one\n",n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=1;i<n;i++) { item=a[i]; s=i; f=(s-1)/2; while(s>0 && a[f]<item) { a[s]=a[f]; s=f; f=(s-1)/2; } a[s]=item; } for(i=n-1;i>0;i--) { value=a[i]; a[i]=a[0]; f=0; if(i==1)

Upload: varun-garg

Post on 20-Jan-2015

913 views

Category:

Business


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Sorting programs

//...........HEAPSORT............................

#include<stdio.h>#include<conio.h>#define MAXSIZE 5#define MAX 15void main(){

int a[MAX],n,i,s,f,item,value;clrscr();printf("Enter the number of elements\n");scanf("%d",&n);printf("Enter %d elements one by one\n",n);for(i=0;i<n;i++){

scanf("%d",&a[i]);}for(i=1;i<n;i++){

item=a[i];s=i;f=(s-1)/2;while(s>0 && a[f]<item){

a[s]=a[f];s=f;f=(s-1)/2;

}a[s]=item;

}for(i=n-1;i>0;i--){

value=a[i];a[i]=a[0];f=0;if(i==1)s=-1;

elses=1;if(i>2 && a[2]>a[1])s=2;while(s>=0 && value<a[s]){

a[f]=a[s];

Page 2: Sorting programs

f=s;s=2*f+1;if(s+1<=i-1 &&(a[s]<a[s+1]))s=s+1;if(s>i-1)s=-1;

}a[f]=value;

}printf("\nThe sorted list is \n");for(i=0;i<n;i++){

printf("%d\n",a[i]);}

getch();}

output:->Enter the number of elements5Enter 5 elements one by one2010405061

The sorted list is1020405061

Page 3: Sorting programs

//quick sort……………………………

#include<stdio.h>#include<conio.h>int lower[20],upper[20],top=-1;int a[20],n,beg,end,loc;void quick();void main(){int i;clrscr();printf("How many elements\n");scanf("%d",&n);printf("Elements are \n");for(i=0;i<n;i++)scanf("%d",&a[i]);if(n>1){top=top+1;lower[0]=0;upper[0]=n-1;}while(top!=-1){beg=lower[top];end=upper[top];top=top-1;quick();if(beg<loc-1){top=top+1;lower[top]=beg;upper[top]=loc-1;}if(loc+1<end){top=top+1;lower[top]=loc+1;upper[top]=end;}}printf("Sorted list\n");for(i=0;i<n;i++)printf("\t %d\n",a[i]);

Page 4: Sorting programs

getch();}

void quick(){int left,right,temp;right1:left=beg;right=end;loc=beg;while((a[loc]<=a[right])&&(loc!=right))right=right-1;if(loc==right)return;if(a[loc]>a[right]){temp=a[loc];a[loc]=a[right];a[right]=temp;loc=right;goto left1;}left1:while((a[left]<=a[loc])&&(left!=loc))left=left+1;if(loc==left)return;if(a[left]>a[loc]){temp=a[loc];a[loc]=a[left];a[left]=temp;loc=left;goto right1;}}

output:How many elements8Elements are6745331112

Page 5: Sorting programs

435678Sorted list 11 12 33 43 45 56 67 78

Page 6: Sorting programs

// INSERTION SORT....................

#include<stdio.h>#include<conio.h>void main(){

int a[100],n,k,i,j,temp;printf("How many elements : ");scanf("%d",&n);printf("Enter the elements of array : \n");for(i=0;i<=n-1;i++){

scanf("%d",&a[i]);}for(k=1;k<n;k++){

temp=a[k];j=k-1;while((temp<a[i])&&(j>=0)){

a[j+1]=a[j];j=j-1;

}a[j+1]=temp;

}printf("Enter element after sorting:\n");for(i=0;i<n;i++){

printf("%d\n",a[i]);}

}

output:->How many elements : 5Enter the elements of array :24351Enter element after sorting:123

Page 7: Sorting programs

45

// BUBBLE SORT..........

#include<stdio.h>#include<conio.h>#include<stdlib.h>

int main(){

int *x,n,i,j,key,found,temp;clrscr();printf("\n\t Enter no. of elements: ");scanf("%d",&n);printf("\tAllocating Memory");x=(int *)malloc(n*sizeof(int));printf("\tReading of data \n");for(i=1;i<=n;++i)

scanf("%d",x+i);for(i=1;i<=n;++i){

for(j=1;j<=n-i;++j){

if(*(x+j)>*(x+j+1)){

temp=*(x+j);*(x+j)=*(x+j+1);*(x+j+1)=temp;

}

}}printf("*******Sorted Array*******\n");for(i=1;i<=n;++i){printf("\n%d",*(x+i));}getch();

}

OUTPUT:->

Enter no. of elements: 5 Allocating Memory Reading of data12

Page 8: Sorting programs

45673452*******Sorted Array*******

1234455267

Page 9: Sorting programs

// SELECTION SORT..................#include<stdio.h>#include<conio.h>

int *mi(int *a,int n){

int i, *p=a;for(i=1;i<n;i++) if(*p<*(a+i)) p=a+i; return(p);

}void swap(int *a, int *b){

int t=*a;*a=*b;*b=t;

}void selectionsort(int *a, int n){

int i;for(i=0;i<n-1;i++){swap(a+i,mi(a+i,n-i));}

}int main(){

int *x,n,i;clrscr();printf("Enter the number of elements: \n");scanf("%d",&n);printf("{Allocating memory} \n");x=(int *) malloc(n*sizeof(int));printf("Reading the data: \n");for(i=0;i<n;i++){

scanf("%d",x+i);}selectionsort(x,n);printf("*******Sorted Array******* \n");for(i=0;i<n;i++)printf("%d\n",*(x+i));

Page 10: Sorting programs

free(x);return 0;

}

output:->Enter the number of elements:5{Allocating memory}Reading the data:25431*******Sorted Array*******54321

Page 11: Sorting programs

//MERGED SORT.......................

#include<stdio.h>#include<conio.h>void merge(int *a,int n,int *b,int m){int i,j,k,*c;c=(int *)malloc((m+n)*sizeof(int));i=0;j=0;k=0;while(i<n&&j<m)c[k++]=(a[i]<b[j])?a[i++]:b[j++];while(i<n)c[k++]=a[i++];while(j<m)c[k++]=b[j++];for(i=0;i<k;i++)a[i]=c[i];free(c);}void mergesort(int *arr,int n){int mid;if((n==1))return;mid=n/2;printf("\n%d",mid);mergesort(arr,mid);mergesort(arr+mid,n-mid);merge(arr,mid,arr+mid,n-mid);}void main(){int *x,i,n;clrscr();printf("Enter elements:");scanf("%d",&n);printf("Allocate memory.");x=(int*)malloc(n*sizeof(int));printf("Reading the data.");for(i=0;i<n;i++)

Page 12: Sorting programs

scanf("%d",x+i);mergesort(x,n);printf("\nElements after sorting");for(i=0;i<n;i++)printf("\n%d",*(x+i));free(x);getch();}

output:

Enter elements:5Allocate memory.Reading the data.1243115676

2111Elements after sorting1112435676

Page 13: Sorting programs
Page 14: Sorting programs