一:直接插入排序的原理
有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数据,插入后使该数据序列仍然有序。
算法适用于少量的数据排序,时间复杂度为O(n^2),是稳定的排序算法。
关键码:是数据元素中某个数据项的值,用于标识一个数据。例如:一个学生的信息就是一条记录,它包括学号,姓名,性别等,学号是关键码。
稳定性:若待排序的记录中,存在两个或两个以上的关键码相同的记录,经排序后这些记录的相对次序不会改变,那么则称该排序是稳定的排序算法。
算法思路:
①设置监视哨r[0],将待插入的记录的值赋给r[0]即可;
②设置开始查找的位置j
③在数组中进行搜索,若不符合条件则前移,直至r[0].key>=r[j].key为止
④将r[0]插入r[j+1]的位置
二:代码分析
#include<iostream>
using namespace std;
templ