//插入排序(每一步将一个待排序的数据插入到前面已经排好序的有序序列中,直到插完所有元素为止)
void StraightSort(int *arr, int n)//插入排序函数
{
int tmp;
int i,j;//定义循环用数
for (i = 1; i <n; i++)//外循环(全部遍历);i初始值为1是为了使tmp不为第一位,若tmp为第一个没有意义
{
tmp = arr[i];//用tmp储存arr[i]的值
for (j = i - 1; j >= 0 && arr[j] > tmp; j–)//内循环(将无序数组中最小的数插入到前面有序数组中)
{
arr[j + 1] = arr[j];//满足条件则将前面的值赋到后面一位
}
arr[j + 1] = tmp;//使arr[j+1]归于arr[i]的值
}
}
插入排序
最新推荐文章于 2023-09-05 15:37:33 发布