加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
code 744 Bytes
一键复制 编辑 原始数据 按行查看 历史
moon11 提交于 2018-01-14 17:00 . 没有main函数
#include <stdio.h>
#include <string.h>
void HeapAdjust( int arry[], int left, int right )
{
int index = left;
for ( int i = left*2; i <= right; i = i*2 )//找到较大者
{
if( i < right && arry[i] < arry[i+1] )
{
i ++;
}
if( arry[index] > arry[i] )
return ;
swap( arry[index], arry{i} );
}
}
void HeapSort( int arry[], int left, int right )
{
int len = right - left + 1;
for( int i = len/2; i >= left; i-- )//把数组调成大顶堆
HeapAdjust( arry, i, right );
for ( int i = right; i > left; i -- )//排序
{
swap( arry[left], arry[i] );
HeapAdjust( arry, left, i - 1 );
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化