堆算法排序 结构定义 link2005

本文介绍了如何使用堆排序算法对包含结构体的数组进行关键字排序,重点讨论了在C语言环境下遇到的问题及解决方案,包括编译错误 '_ikey' 的定义冲突和结构体成员 'KEY' 的引用错误。提供了修正后的完整代码示例。
摘要由CSDN通过智能技术生成

昨天晚上在演算编译堆排序法对结构体一维数组进行关键字排序时候,遇到一些问题,把这些问题总结在这里,以待参考:


1 堆排序法:堆排序法,就是通过堆这种数据结构来实现排序,算法复杂度为O(nlogn)。堆是一种完全二叉树且所有的父节点均大于(或小于)其子节点。堆排序就是将所有待排序的元素组成一个堆,然后不断弹出堆顶的元素并调用函数维持堆序,直到所有元素均被弹出后,排序完成。被弹出的元素序列即一个有序数列。

我把修改过程序贴在下面.



  #include "stdio.h"
  #include "15ikey.c"
  main()
  { int i;
    static HEAPSORT stu[10]={ {101,"Zhang",'M',19,95.6},
    {102,"Wang",'F',18,92.4},{103,"Zhao",'M',19,85.7},
    {104,"Li",'M',20,96.3},{105,"Gou",'M',19,90.2},
    {106,"Lin",'M',18,91.5},{107,"Ma",'F',17,98.7},
    {108,"Zhen",'M',21,90.1},{109,"Xu",'M',19,89.8},
    {110,"Mao",'F',18,94.9}};
    HEAPSORT *p[10];
    for

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值