📄 heap.c
字号:
#include<stdio.h>
#include<conio.h>
void heapsort(int*, int );
void heapify(int*,int n);
void adjust(int*,int ,int );
int main()
{
int *a,n,i;
printf("enter the no of elements to be sorted");
scanf("%d",&n);
a=(int*)malloc(n*sizeof(int));
printf("enter the numbers to be sorted");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
heapsort(a,n);
printf("the elements in sorted form are :");
for(i=0;i<n;i++)
printf("%d",a[i]);
getch();
return 0;
}
void heapsort(int *a, int n)
{
heapify(a,n);
int i,t;
for(i=n;i>1;i--)
{
t=a[i];
a[i]=a[1];
a[1]=t;
adjust(a,1,i-1);
}
}
void heapify(int *a,int n)
{
int i;
for(i=n/2;i>0;i--)
adjust(a,i,n);
}
void adjust(int *a,int i,int n)
{
int j,item;
j=2*i;
item=a[i];
while(j<=n)
{
if(j<n&&a[j]<a[j+1])
j=j+1;
if(item<a[j])
{
a[j/2]=a[j];
j=2*j;
}
}
a[j/2]=item;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -