Heap Sort

1:  #include<stdio.h>  
2:  #include<conio.h>  
3:  void heapsort(int a[],int n);  
4:  void heapify(int a[],int n);  
5:  void adjust(int a[],int n,int i);  
6:  int a[10],n,j,i;  
7:  void main()  
8:  {  
9:  clrscr();  
10:  printf("Heap sort \n");  
11:  printf("Enter the num of elements: \n");  
12:  scanf("%d",&n);  
13:  printf("Enter the elements: \n");  
14:  for(i=1;i<=n;i++)  
15:             scanf("%d",&a[i]);heapsort(a,n);  
16:  printf("The sorted list is: \n");  
17:  for(i=1;i<=n;i++)  
18:             printf("%d \n",a[i]);  
19:  getch();  
20:  }  
21:  void heapsort(int a[],int n)  
22:  {  
23:  int t;  
24:  heapify(a,n);  
25:  for(i=n;i>=2;i--)  
26:  {  
27:           t=a[i];  
28:           a[i]=a[1];  
29:           a[1]=t;  
30:           adjust(a,1,i-1);  
31:  }  
32:  }  
33:  void heapify(int a[],int n)  
34:  {  
35:  for(i=n/2;i>=1;i--)  
36:  adjust(a,i,n);  
37:  }  
38:  void adjust(int a[],int i,int n)  
39:  {  
40:  int item;  
41:  j=2*i;  
42:  item=a[i];  
43:  while(j<=n)  
44:  {  
45:             if((j<n)&&(a[j]<a[j+1]))  
46:                   j=j+1;  
47:             if(item>=a[j])  
48:                  break;  
49:             a[j/2]=a[j];  
50:             j=2*j;  
51:        }  
52:        a[j/2]=item;  
53:   }  

No comments:

Post a Comment

Code Of The day - Suggest An Output For The Snippet

  #include<stdio.h>   
  int main()   
  {   
   float a=3.15529;   
   printf("%2.1f\n", a);   
   return 0;   
  }   
· A Code Archive - code1archive