复杂度O(n^2);
但是理论上插入排序比选择排序的效率更高,因为判断条件的存在使得插入排序可以提前终止。
算法思路:主要思想就是将新的元素插入到已经有序的数组中。通过依次与前方元素比较,找到自己应该在的位置,一旦找到,可以提前结束。
#include <iostream>
using namespace std;
template<typename T>
void InsertSort(T arr,int n){
for(int i=1;i<n;i++){
for(int j = i;j>0;j--){
if(arr[j]<arr[j-1])
swap(arr[j],arr[j-1]);
else
break;
}
}
}