堆排序

来源:互联网 发布:sql数据库基本语句 编辑:程序博客网 时间:2024/04/30 02:28
#include<iostream>#include<cstring>using namespace std;#define max 200int a[max];void adjustheap(int n){    if(n==1)        return ;    int i,j,k,m,t;    i=n-1;    while(i>0)///start为根节点    {        if(i%2==0)        {            j=i/2-1;        }        else            j=i/2;        if(a[i]>a[j])        {            t=a[i];            a[i]=a[j];            a[j]=t;        }        i--;    }    cout<<a[0]<<endl;    /*for(i=0; i<n-1; i++)        a[i]=a[i+1];*/        t=a[n-1];        a[n-1]=a[0];        a[0]=t;   /* for(i=0; i<n-1; i++)        cout<<a[i]<<" ";    cout<<endl;*/    adjustheap(n-1);}int main(){    int i,j,k,m,n,t;    while(cin>>n)    {        memset(a,0,max);        for(i=0; i<n; i++)            cin>>a[i];        cout<<"result:"<<endl;        adjustheap(n);        //   cout<<"result:"<<endl;        /*for(i=0; i<n; i++)            cout<<a[i]<<" ";*/    }}

0 0
原创粉丝点击