heapsort.cpp

来自「用堆排序算法实现对一组无序整数的排序」· C++ 代码 · 共 40 行

CPP
40
字号
#include<iostream.h>
void heapadjust(int a[],int s,int m)
{
	int rc;
	rc=a[s];
    for (int j=2*s;j<=m;j*=2)
	{
		if ((j<m)&&(a[j]<a[j+1])) 
			++j;
		if (rc>=a[j]) break;
		a[s]=a[j];
		s=j;
	}
	a[s]=rc;
}
void heapsort(int a[],int n)
{
	int i;
	int temp;
	for (i=n/2;i>0;--i)
		heapadjust(a,i,n);
 /*   for (i=1;i<=n;i++)
		cout<<a[i]<<endl;*/
	for (i=n;i>1;--i)
	{
        cout<<a[1]<<endl;
		temp=a[1];
		a[1]=a[i];
		heapadjust(a,1,i-1);
	}
}
int main()  {
    int i,n,b[100];
		cin>>n;
        for(i=1;i<=n;i++) 
		   cin>>b[i];
        heapsort(b,n);
		return 0;
}

⌨️ 快捷键说明

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