直接插入排序的时间复杂度为O(n*n)空间复杂度为O(1)是稳定的排序算法
直接插入排序是把序列分成有序队列和无序队列,再把无序队列中的数一个个插入到有序队列中恰当的位置
void InsertSort(int* data, int length) { if( data == NULL || length <=0 ) return; for(int i = 1; i < length; ++i) { if( data[i] < data[i-1]) //有序序列为(0~i-1),无序序列为(i~length-1) { int temp = data[i]; //哨兵 int j= i-1; for(; j>=0 && data[j] > temp; --j) //从有序序列的最后一个数开始比较,即寻找恰当的插入位置 { data[j+1] = data[j]; } data[j+1] = temp; } } }