📄 堆调整排序.cpp
字号:
#include <iostream>
#include <cstdlib>
using namespace std;
void HeapAdjust(int *a,int root,int len)
{
int child,x=a[root];
while (child=root<<1|1,child<len)
{
if (child<len-1 && a[child]<a[child+1])child++;
if (x<a[child]){a[root]=a[child];root=child;}
else break;
}
a[root]=x;
}
//堆排序
void HeapSort(int*a,int len)
{
for (int i=len/2-1;i>=0;i--)
HeapAdjust(a,i,len);
while (--len)
{
swap(a[0],a[len]);
HeapAdjust(a,0,len);
}
}
int main()
{
int a[10]={15,6,3,16,25,48,48,59,23,12};
HeapSort(a,10);
cout<<a[0];
for(int i=1;i<10;i++)
{
cout<<","<<a[i];
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -