0. 前言
- Simple Sorts包括两种排序算法: 选择排序(Selection sort) 和 插入排序(Insertion sort)。
- 代码基于C++11编写,编译器使用g++4.9.2 版本。
- 测试数据集使用导论中提供的程序生成。
- 测试使用导论中提供的测试框架,加入相关的头文件,并进行相关算法调用(具体可参见插入排序中的测试源代码)。
1. 插入排序(Insertion sort)
1.1 基本思想
插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。
1.2 源代码
// InsertionSort.h
#include <vector>
template<typename ItemType>
void InsertionSort(std::vector<ItemType> &items)
{
for (int i = 1; i < items.size(); ++i) {
auto tmp = std::move(items[i]);