插入排序是一种时间复杂度为O(N^2),空间复杂度为O(1)的算法
基本思想: 每一步将一个待排序的数据插入到前面已经排好序的有序序列中,直到插完所有元素为止。
算法实现: 直接插入排序是将无序序列中的数据插入到有序的序列中,在遍历无序序列时,首先拿无序序列中的首元素去与有序序列中的每一个元素比较并插入到合适的位置,一直到无序序列中的所有元素插完为止。
实现代码:
//插入排序
void insertSort(int d[],int length){
for (int i=1; i<length;i++)
{
int temp=d[i];
//前一个数大于当前数则交换位置
for (j = i; j > 0 && d[j-1]>temp; j--)
{
d[j]=d[j-1];
}
d[j]=temp;
}
}