标签:
#include<iostream> #include<vector> using namespace std; int heapAdjust(int array[],int top,int depth) { int rc=array[top]; for(int i=top*2;i<=depth;i*=2) { if(i<depth && array[i]<array[i+1]&&(i+1)<=depth) ++i; if(rc>array[i]) break; array[top]=array[i]; top=i; } array[top]=rc; } void heapSort(int array[],int length) { int i=0; for(i=length/2;i>0;--i) { heapAdjust(array,i,length); } for(i=length;i>1;--i) { int temp=array[1]; array[1]=array[i]; array[i]=temp; heapAdjust(array,1,i-1); } } int main() { //第一次不算,因为是从下标1开始排序的。 int a[9]={0,49,38,65,97,76,13,27,49}; for(int i=0;i<9;i++) cout<<a[i]<<" "; cout<<endl; heapSort(a,8); // heapAdjust(a,2,8); for(int i=0;i<9;i++) cout<<a[i]<<" "; cout<<endl; // system("pause"); return 0; }
标签:
原文地址:http://www.cnblogs.com/lxdonge/p/4549751.html