思路:
/**
* 插入排序
* 1、确定插入排序的数,从第二个开始选择
* 2、选择插入排序的数,保存为num
* 3、计算num前一个数的索引
* 4、进行检查,如果num小于前面的数,则将前一个数往后移,若比前一个数大,则结束此次循环
* 5、结束时的位置保存num
————————————————
版权声明:本文为CSDN博主「神韵_499」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41055045/article/details/103463918cpp
在这里插入代码片
**对近乎有序的数组,插入排序的效率很高**
```cpp
template <typename T>
```cpp
void insertionSort(T arr[], int n) {
for (int i = 1; i < n; i++) {
//寻找arr[i]元素合适的插入位置
T e = arr[i];
int j = 1;//保存e应该插入的位置
for (int j = i; j > 0 && arr[j - 1]>e; j--) {
arr[j]=arr[j-1];//前一个位置后移
}
arr[j] = e;
}
}