堆排序 C++实现

来源:互联网 发布:sql注入攻击方式 编辑:程序博客网 时间:2024/05/22 15:36
#include<iostream>#include<cstdio>#include<cstdlib>using namespace std;void HeapAdjust(int *A,int s,int m){    int t=A[s];    for(int i=2*s+1;i<m;i=2*i+1)    {        if(i+1<m&&A[i]<A[i+1]) i++;        if(t>=A[i]) break;        A[s]=A[i];        s=i;    }    A[s]=t;}void HeapSort(int *A,int N){    for(int i=N/2-1;i>=0;i--)    HeapAdjust(A,i,N);    for(int i=0;i<N;i++)    {        swap(A[N-i-1],A[0]);        HeapAdjust(A,0,N-i-1);    }}int main(){    int array[10]={4,5,2,5,7,8,1,2,9,0};    HeapSort(array,10);    for(int i=0;i<10;i++)    cout<<array[i]<<" ";    cout<<endl;    return 0;}

原创粉丝点击