思路:将待排序的关键字插入到已经排好序(只有一个元素也称排好序)的记录中
性能:稳定排序算法,时间复杂度O(n^2),空间复杂度O(1)(就是指辅助空间),有大量数据移动,越有序越好性能越好(逆序性能最差),适合少量数据排序。
void insert_sort(int a[], int n)
{
int j, key;
for(int i = 1; i < n; i++){
key = a[i];
j = i-1;
while(j >= 0 && key < a[j]){
a[j+1] = a[j]; //把所有大于key的元素都往后移动一个位置
j--;
}
a[j+1] = key; //找到key的位置
}
}