排序-阿里云开发者社区

开发者社区> 人工智能> 正文

排序

简介:

定义:

将一组杂乱无章的数据按一定规律顺次排列起来

目的:

便于查找

内部排序:

若待排序都在内存中,则称为内部排序

外部排序:

若待排序记录一部分在内存,一部分在外存,则称为外部排序。

注意:外部排序时,要将数据分批调入内存来排序,中间结果还要及时放入外存,显然外部排序要复杂得多。


排序算法的好坏如何衡量?

时间效率—–排序速度(比较次数与移动次数)

空间效率—–占内存辅助空间的大小

稳定性——A和B的关键字相等,排序后A、B的先后次序保持不变,则称为这种排序算法是稳定的。


排序算法分类

(1)依据原则来分类

  1. 插入排序

  2. 交换排序

  3. 选择排序

  4. 归并排序

  5. 基数排序

(2)按所需的工作量分类

  1. 简单的排序方法,其时间复杂度为O(n*n)

  2. 先进的排序方法,其时间复杂度为O(nlog2n);

  3. 基数排序,其时间复杂度为O(d*n)

待排序记录的存储方式

    #define MAXSIZE 20  //设记录不超过20个

    typedef int KeyType; //设关键字为整数型

    Typedef struct{      //定义每个记录(数据元素)的结构

    KeyType Key;          //关键字

    InfoType otherinfo;   //其他数据项

    }RedType;

    Typedef struct{              //定义顺序表的结构

    RedType r【MAXSIZE+1】;  //存储顺序表的向量

    int length;   //顺序表的长度

    }SqList;

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
人工智能
使用钉钉扫一扫加入圈子
+ 订阅

了解行业+人工智能最先进的技术和实践,参与行业+人工智能实践项目

其他文章