数据结构笔记17-排序技术
在排序问题中,通常将数据元素称为记录 排序的基本概念 正序:待排序序列中的记录已按关键码排好序。 逆序(反序):待排序序列中记录的排列顺序与排好序的顺序正好相反。 趟:在排序过程中,将待排序的记录序列扫描一遍称为一趟。 通常,一次排序过程需要进行多趟扫描才能完成 排序算法的性能 1.时间复杂性:基本操作。 内排序在排序过程中的基本操作: (1)比较:关键码之间的比较; (2)移动:记录从一个位置移动到另一个位置。 2.空间复杂性: 辅助存储空间。 辅助存储空间是指在数据规模一定的条件下,除了存放待排序记录占用的存储空间 之外,执行算法所需要的其他存储空间。 排序算法的存储结构 从操作角度看,排序是线性结构的一种操作,待排序记录可以用顺序存储结构 或链接存储结构存储。 插入类排序 插入排序的主要操作是插入, 其基本思想是: 每次将一个待排序的记录按其关键码的大小插入到一个已经排好序的有序序列 中,直到全部记录排好序为止。 插入类排序方法有以下两种: 直接插入排序 希尔排序 直接插入排序 基本思想:在插入第 i(i>1)个记录时,前面的 i-1个记录已经排好序。 需解决的关键问题: (1)如何构造初始的有序序列? 解决方法: 将第1个记录看成是初始有序表,然后从第2个记录起依次插入到这个有序表中,直 到将第n个记录插入。 算法描述: for (i=2; i<=n; i++) {