1.#include <stdio.h>
/* 实现多关键字排序 */
typedef struct _tag_DataElem
{
    char desc[20];
    int key1;
    int key2;
} DataElem;

int compare1(DataElem* ld, DataElem* rd)
{
    int ret = 0;
    
    if( ld->key1 > rd->key1 )
    {
        ret = 1;
    }
    else if( ld->key1 == rd->key1 )
    {
        if( ld->key2 > rd->key2 )
        {
            ret = 1;
        }
        
        if( ld->key2 < rd->key2 )
        {
            ret = -1;
        }
    }
    else
    {
        ret = -1;
    }
    
    return ret;
}
//
int compare2(DataElem* ld, DataElem* rd)
{
    return (ld->key1*100 + ld->key2) - (rd->key1*100 + rd->key2);
}

int main()
{
    //初始化结构体data  大于返回负数 否则
    DataElem d1 = {"d1", 91, 80};
    DataElem d2 = {"d2", 91, 88};
    //输出结果
    printf("Compare1 %s and %s: %d\n", d1.desc, d2.desc, compare1(&d1, &d2));
    printf("Compare2 %s and %s: %d\n", d1.desc, d2.desc, compare2(&d1, &d2));
    
    return 0;
}

/*  内排序  与  外排序  时间性能  存储空间  复杂性  */
/*  空间换时间   时间换空间   */

转载于:https://www.cnblogs.com/wxb20/p/6148593.html

排序的概念及分类实现相关推荐

  1. 数据结构之排序的概念及分类

    排序的概念 排序的一般定义:排序是计算机内经常进行的一种操作,其目的是将一组"无序"的数据元素调整为"有序"的数据元素. 例如:将下列关键字序列 52,49, ...

  2. 《大话数据结构》第9章 排序 9.2 排序的基本概念与分类

    9.2 排序的基本概念与分类 9.2.1 排序的定义         排序是我们生活中经常会面对的问题.同学们做操时会按照从矮到高排列:老师查看上课出勤情况时,会按学生学号顺序点名:高考录取时,会按成 ...

  3. 排序(基本概念及分类,直接插入排序和希尔排序)

    排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作. 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对 ...

  4. (转载)安全漏洞概念及分类

    http://pan.baidu.com/s/1kT9LT4r 安全漏洞概念及分类 本文是一个安全漏洞相关的科普,介绍安全漏洞的概念认识,漏洞在几个维度上的分类及实 例展示. 安全漏洞及相关的概念 本 ...

  5. Java:异常的概念及分类、异常的处理、异常抛出及自定义异常

    异常概念 异常分类   Java异常处理机制 try ...catch...finally throw和throws 自定义异常 一.异常的概念         什么是异常?             ...

  6. FPGA的ip核之概念和分类

    ip核之概念和分类 IP(Intellectual Property)内核模块是一种预先设计好的甚至已经过验证的具有某种确定功能的集成电路.器件或部件.它有几种不同形式.IP内核模块有行为(behav ...

  7. 10 计算机组成原理第六章 总线 总线的概念与分类 总线性能指标 总线仲裁 总线操作和定时 总线标准

    文章目录 1 总线的概念与分类 1.1总线的定义 1.2 总线的特点 1.3 总线的特性 1.4 总线的分类 1.4.1 串行总线与并行总线 1.4.2 按总线功能分类 1.5 系统总线的结构 1.6 ...

  8. 18 操作系统第五章 设备管理 IO设备的基本概念和分类 IO控制器 IO控制方式 IO软件层次结构 IO核心子系统 假脱机技术 设备的分配与回收 缓冲区管理

    文章目录 1 IO设备的基本概念和分类 1.1 什么是I/O设备 1.2 I/O设备分类 2 IO控制器 2.1 I/O设备组成 2.2 I/O控制器功能 2.3 I/O控制器的组成 2.4 寄存器编 ...

  9. 复练-软考网规-IDS和IPS概念、分类、评价标准

    时间戳:2020年10月13日15:44:01 前情提要:IDS和IPS概念.分类.评价标准 IDs是英文" Intrusion Detection Systems'的缩写,中文意思是&qu ...

  10. Java简单类、变量详解(概念和分类、声明、命名、初始化)

    1初识JAVA简单类 (1)创建第一个Java程序的具体步骤: 第一步:创建一个工程,在Package Explorer空白区域中右击New->点击Java Project->填写Proj ...

最新文章

  1. 诸法无我-悉达多 乔达摩
  2. 魔力宝贝服务器列表修改,魔力宝贝修改代码一览表GM.docx
  3. 4g ecgi 编码_4G学习之IMSI附着
  4. 光纤收发器的实际应用范围介绍
  5. nginx_keepalived配置(转载保存)
  6. linux tail命令_操作手册
  7. c语言除法加括号么,算不了除法,为什么?
  8. 那些年我们office_那些年,我们的传奇三
  9. 软考高级报考,科目思维导图概览和介绍
  10. mysql 并发 加锁_MySQL的并发控制与加锁分析
  11. server.xml引入子文件配置(tomcat虚拟主机)[转]
  12. LayaAir 屏幕适配-横屏与竖屏
  13. 逻辑回归与线性回归是什么关系呢?
  14. CMU 15-213 Introduction to Computer Systems学习笔记(22) Synchronization: Advanced
  15. STM32F072C8T6调试IAP(CAN)记录
  16. 十代主板改win7_英特尔10代CPU完美装win7|新主板新CPU装win7 Bios设置
  17. mysql got signal 11_mysqld got signal 11问题定位
  18. welearn考试切屏会有显示吗_welearn答案在哪里可以看?公众号、app或者微信小程序?...
  19. C语言 —— 存储类相关的关键字 (持续更新中....)
  20. 【C语言】编写一个函数判别某一数是否为素数,若是,返回值为1;否则,返回值为0。

热门文章

  1. 反向传播算法BP公式推导
  2. 公式推导 11-14
  3. Python验证码识别处理实例
  4. 浅谈算法和数据结构: 八 平衡查找树之2-3树
  5. android studio for android learning (二十八) android基础知识
  6. 文件服务器 测试,python-文件服务器测试
  7. sys.argv学习,通过运行py脚本,手动传入参数
  8. rocketmq安装教程以及遇到的坑排查
  9. Windows 安装两个MYSQL实例
  10. java 编程英语单词,语句