算法思路:
每趟将一个待排序的元素作为关键字,按照其关键字值的大小插入到已经排好的部分的适当位置上,直到插入完成。
数组中待排序的关键字前面的数据为已经排序的数据,关键字插入的过程中需要遍历已排序的数据找到位置并插入,已排序数据中插入位置的值以及该值后面的数据顺序后移。
int InsertionSort(unsigned short unsorted[], int len)
{
int i;
int temp;
int j;
if(len < 0)
{
return FALSE;
}
for (i = 1; i < len; i++)//i从1开始,0下标默认排好序
{
if (unsorted[i - 1]> unsorted[i])//unsorted[i]待排序关键字,比前面的小则需要排序,增序排列
{
temp = unsorted[i];//temp为关键字
j = i;
//寻找插入位置并顺序后移动已排序数据
while (j > 0 && unsorted[j - 1] > temp)
{
unsorted[j] = unsorted[j - 1];
j--;
}
unsorted[j] = temp;
}
}
return TRUE;
}
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行