读书人

惯用的内部排序【1】排序算法的概

发布时间: 2013-10-22 16:16:51 作者: rapoo

常用的内部排序【1】——排序算法的概念及内部排序的分类
1.排序概述
排序:排序就是将一组任意的数据(或记录)变成一组按关键字排序的有序序列。 排序的目的:快速查找。
衡量算法优劣的标准:时间复杂度:主要分析关键字的比较次数和记录的移动次数。空间复杂度:分析排序中需要的辅助内存。稳定性:若记录A和B的关键字值相等,但排序后A、B的先后次序保持不变,则此排序算法是稳定的;反之,就是不稳定的的。 排序算法的两大分类:内部排序:所有排序操作均在内存中完成,不需要借助外部存储器的排序。外部排序:参与排序的数据量十分大,无法再内存中完成,必须借助外部存储器的排序。
外部排序的最常用的算法:多路归并排序,其算法思想如下:

    把要排序的文件中的一组数据读入内存的排序区,然后用内部排序对这一组数据排序,接着输出到外部存储器。重复第一步,每次读取一组数据,直到原文件的所有记录都被处理完毕。将分组排好序的记录两组两组地合并排序。在内存容量允许的情况下,每组包含的记录越大越好,这样可以减少合并的次数。
实际上,也可以认为外部排序由多次内部排序组成。常说的排序就是指内部排序。
2.内部排序的分类
内部排序可以分为以下6大类,具体10中排序:
    选择排序:【直接选择排序、堆排序】交换排序:【冒泡排序、快速排序】插入排序:【直接插入排序、折半插入排序、Shell排序】归并排序桶式排序基数排序


读书人网 >编程

热点推荐