#include<stdio.h> #include<stdlib.h> main() { int heap[50],i,j,ch,size,loc,par; int temp; printf("enter the size of heap tree\n"); scanf("%d",&size); printf("all the elements\n"); for(i=0;i<size;i++) scanf("%d",&heap[i]); for(i=0;i<size;i++) { loc=i; do { par=(loc-1)/2; if(heap[par]<heap[loc]) { temp=heap[par]; heap[par]=heap[loc]; heap[loc]=temp; } loc=par; }while(loc!=0); } printf("heap tree is \n"); for(i=0;i<size;i++) printf("%d\t",heap[i]); for(j=size-1;j>=0;j--) { temp=heap[0]; heap[0]=heap[j]; heap[j]=temp; par=0; do { ch=2*par+1; if(heap[ch]<heap[ch+1]&&ch<j-1) ch++; if(heap[par]<heap[ch]&&ch<j) { temp=heap[par]; heap[par]=heap[ch]; heap[ch]=temp; } par=ch; }while(ch<j); } printf("\nsorted array\n"); for(i=0;i<size;i++) printf("%d\t",heap[i]); }
New Android apps UniqueKey
Friday, 20 February 2015
Heap Sort
Labels:
C language,
Sorting
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment