建设网站个人简介范文,低代码小程序开发平台,辽阳做网站公司,设计网页的详细步骤堆排序比较特殊#xff0c;采用数组表示堆。 
先将数组表示成大根堆或者小根堆。然后从堆中依次取根#xff0c;最后形成有序序列。 
#includebits/stdc.h
using namespace std;const int N  1e5  10;
int a[N];void bigheap(int* a, int start, int len)
{if(start …堆排序比较特殊采用数组表示堆。 
先将数组表示成大根堆或者小根堆。然后从堆中依次取根最后形成有序序列。 
#includebits/stdc.h
using namespace std;const int N  1e5  10;
int a[N];void bigheap(int* a, int start, int len)
{if(start  0 || len  1) return;int son  start * 2  1;int parent  start;while(son  len){if((son1  len)  (a[son]  a[son1])){son  son1;}if(a[parent]  a[son]){break;}int tmp  a[son];a[son]  a[parent];a[parent]  tmp;parent  son;son  parent * 2  1;}
}
void heapsort(int* a, int len)
{for(int i  len/2-1; i0; i--){bigheap(a, i, len-1);}for(int i  len - 1; i  0; i--){int tmp  a[i];a[i]  a[0];a[0]  tmp;bigheap(a, 0, i-1);}}
int main() {int n;cin  n;for (int i  0; i  n; i) {cin  a[i];}heapsort(a, n);for (int i  0; i  n; i) {cout  a[i]   ;}
}