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: }
Heap Sort
Subscribe to:
Posts (Atom)
No comments:
Post a Comment