教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

C++八大排序算法(5)

来源:网络收集 时间:2026-09-02
导读: if (t { *(x+k) = *(x+j); k = j; /*调整后,开始元素也随之调整*/ j = 2*k + 1; } else /*没有需要调整了,已经是个堆了,退出循环。*/ { break; } } *(x+k) = t; /*开始元素放到它正确位置*/ } /* 功能:堆排序

if (t<*(x+j)) /*调整*/

{

*(x+k) = *(x+j);

k = j; /*调整后,开始元素也随之调整*/

j = 2*k + 1; }

else /*没有需要调整了,已经是个堆了,退出循环。*/ {

break; } }

*(x+k) = t; /*开始元素放到它正确位置*/

} /*

功能:堆排序

输入:数组名称(也就是数组首地址)、数组中元素个数 */

void heap_sort(int *x, int n) {

int i, k, t; int *p;

for (i=n/2-1; i>=0; i--) {

sift(x,n,i); /*初始建堆*/ }

for (k=n-1; k>=1; k--) {

t = *(x+0); /*堆顶放到最后*/ *(x+0) = *(x+k); *(x+k) = t;

sift(x,k,0); /*剩下的数再建堆*/ } }

void main() {

#define MAX 4 int *p, i, a[MAX];

/*录入测试数据*/

p = a;

printf(\for (i=0; i

scanf(\}

printf(\

/*测试选择排序*/

p = a;

select_sort(p,MAX); /**/

/*测试直接插入排序*/ /* p = a;

insert_sort(p,MAX); */

/*测试冒泡排序*/ /* p = a;

insert_sort(p,MAX); */

/*测试快速排序*/ /* p = a;

quick_sort(p,0,MAX-1); */

/*测试堆排序*/ /* p = a;

heap_sort(p,MAX); */

for (p=a, i=0; i

printf(\}

printf(\

system(\}

C++八大排序算法(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/605592.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)