12.c

来自「数据结构练习共18道。」· C语言 代码 · 共 49 行

C
49
字号
#include <stdio.h>

void heapadjust(int data[],int s,int m){
	int t,j;
	t=data[s];
	for(j=2*s+1;j<=m;j=j*2+1){
		if(j<m&&data[j]<data[j+1])++j;
		if(!(t<data[j]))break;
		data[s]=data[j];s=j;
	}
	data[s]=t;
}

void heapsort(int data[],int n){
	register int i;
	int t;
	for (i=n/2-1;i>=0;--i)
		heapadjust(data,i,n-1);
	for(i=n-1;i>0;--i){
		t=data[0];
		data[0]=data[i];
		data[i]=t;

		heapadjust(data,0,i-1);
	}
}


void main()
{
	int i;
	int list[6];
	
	for (i=0;i<7;i++)
	{
		printf("Input num %d:",i);
		scanf("%d",&list[i]);
	}

	printf("\nThe list is:");
	for(i=0;i<7;i++)printf("%d ",list[i]);

	heapsort(list,7);

	printf("\nThe sorted list is:");
	for(i=0;i<7;i++)printf("%d ",list[i]);


}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?