排序的基本概念

排序的基本概念  
     所谓排序,就是要整理文件中的记录,使之按关键字递增(或递减)次序排列起来。其确切定义如下:
  输入:n个记录R 1 ,R 2 ,…,R n ,其相应的关键字分别为K 1 ,K 2 ,…,K n
  输出:R il ,R i2 ,…,R in ,使得K i1 ≤K i2 ≤…≤K in 。(或K i1 ≥K i2 ≥…≥K in )。

(1)排序的分类
1.按是否涉及数据的内、外存交换分
     在排序过程中,若整个文件都是放在内存中处理,排序时不涉及数据的内、外存交换,则称之为 内部排序 (简称内排序);反之,若排序过程中要进行数据的内、外存交换,则称之为 外部排序
   注意:
     ① 内排序适用于记录个数不很多的小文件
     ② 外排序则适用于记录个数太多,不能一次将其全部记录放人内存的大文件。
2.按策略划分内部排序方法
     可以分为五类:插入排序、选择排序、交换排序、归并排序和分配排序。

(2)排序算法的基本操作
     大多数排序算法都有两个基本的操作:
  (1) 比较两个关键字的大小;
  (2) 改变指向记录的指针或移动记录本身。
   注意:
     第(2)种基本操作的实现依赖于待排序记录的存储方式。

(3)排序算法性能评价
1.评价排序算法好坏的标准
  评价排序算法好坏的标准主要有两条:
     ① 执行时间和所需的辅助空间
     ② 算法本身的复杂程度
2.排序算法的空间复杂度
  若排序算法所需的辅助空间并不依赖于问题的规模n,即辅助空间是O(1),则称之为就地排序(In-PlaceSou)。
  非就地排序一般要求的辅助空间为O(n)。
3.排序算法的时间开销
  大多数排序算法的时间开销主要是关键字之间的比较和记录的移动。有的排序算法其执行时间不仅依赖于问题的规模,还取决于输入实例中数据的状态。

你可能感兴趣的:(数据结构,算法,C语言)