常用的内部排序【1】——排序算法的概念及内部排序的分类

来源:互联网 发布:龙记模胚参数数据2330 编辑:程序博客网 时间:2024/04/30 01:53

1.排序概述


        排序:排序就是将一组任意的数据(或记录)变成一组按关键字排序的有序序列。
        排序的目的:快速查找。

        衡量算法优劣的标准:
  • 时间复杂度:主要分析关键字的比较次数和记录的移动次数。
  • 空间复杂度:分析排序中需要的辅助内存。
  • 稳定性:若记录A和B的关键字值相等,但排序后A、B的先后次序保持不变,则此排序算法是稳定的;反之,就是不稳定的的。
        排序算法的两大分类:
  • 内部排序:所有排序操作均在内存中完成,不需要借助外部存储器的排序。
  • 外部排序:参与排序的数据量十分大,无法再内存中完成,必须借助外部存储器的排序。
        外部排序的最常用的算法:多路归并排序,其算法思想如下:
  1. 把要排序的文件中的一组数据读入内存的排序区,然后用内部排序对这一组数据排序,接着输出到外部存储器
  2. 重复第一步,每次读取一组数据,直到原文件的所有记录都被处理完毕。
  3. 将分组排好序的记录两组两组地合并排序。在内存容量允许的情况下,每组包含的记录越大越好,这样可以减少合并的次数。
        实际上,也可以认为外部排序由多次内部排序组成。常说的排序就是指内部排序。

2.内部排序的分类


        内部排序可以分为以下6大类,具体10中排序:
  1. 选择排序:【直接选择排序、堆排序】
  2. 交换排序:【冒泡排序、快速排序】
  3. 插入排序:【直接插入排序、折半插入排序、Shell排序】
  4. 归并排序
  5. 桶式排序
  6. 基数排序


原创粉丝点击