插入排序
思想:从图中可以看出,插入排序比较的次数与无序数组的长度相等,每次无序数组元素与有序数组中的所有元素进行比较,比较后找到对应位置插入,最后即可得到一个有序数组。
//插入排序
int main()
{
int i, j;
int arr[6] = { 3, 29, 5, 22, 10, 24 };
for (i = 1; i < 6; i++)
{
for (j = i; j>0; j--)//j>0 如果j>0的话,下面if语句中的arr[j-1]就会有越界的时候
{
if (arr[j-1] > arr[j])//这种插入排序的思想和冒泡排序的思想差不多
{
int tmp = arr[j - 1];
arr[j - 1] = arr[j];
arr[j] = tmp;
}
}
}
for (i = 0; i < 6; i++)
{
printf("%d ", arr[i]);
}
return 0;
}