欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C++实现堆排序代码

程序员文章站 2022-04-01 21:28:29
C++实现堆排序代码 c++代码: #include using namespace std; const int maxn = 10; int a[maxn]...
C++实现堆排序代码

c++代码:

#include 
using namespace std;

const int maxn = 10;
int a[maxn];

void heap_adjust(int a[], int k, int n){
    int tmp=a[k];
    for(int i=k*2; i<=n; i*=2){
        if(ia[k]))break;
        a[k]=a[i];
        k=i;
    }
    a[k]=tmp;
}

int main(){
    //freopen("F://inp.txt","r",stdin);
    int n;
    while(cin>>n){
        for(int i=1; i<=n; i++){
            cin>>a[i];
        }   
        for(int i=n/2; i>0; i--){
            heap_adjust(a,i,n);
        } 
        for(int i=n; i>1; i--){
            int tmp=a[1];
            a[1]=a[i];
            a[i]=tmp;

            heap_adjust(a,1,i-1);
        }   
        for(int i=1; i<=n; i++) cout<