首页 > 程序开发 > 软件开发 > C++ >

C++实现堆排序代码

2017-10-24

C++实现堆排序代码

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<
相关文章
最新文章
热点推荐