C++ヒープソート

938 ワード

詳細については、このブログの内容を参照してください.https://www.cnblogs.com/chengxiao/p/6129630.html
#include 
using namespace std;

void sort(int a[],int n);
void maxHeap(int a[],int i,int n);
void swap(int &a,int &b);

int main()
{
	int arry[]={4,6,8,5,9};
	sort(arry,5);
	for (int i=0;i<5;i++)
		cout<=0;i--)//                ,        
		maxHeap(a,i,n);
	//     +           
	for (int j=n-1;j>0;j--)
	{
		swap(a[0],a[j]);//            ,              
		maxHeap(a,0,j);
	}
}
//     (      ,             
void maxHeap(int a[],int i,int n)
{
	int temp=a[i];
	for (int k=2*i+1;ka[k])//            ,k      
			k++;
		if (a[k]>temp)//          ,         
		{
			a[i]=a[k];
			i=k;
		}
		else
			break;
	}
	a[i]=temp;
}

void swap(int &a,int &b)
{
	int temp;
	temp=a;
	a=b;
	b=temp;
}