(1)打开你的开发工具,比如visual studio 、vscode等等
(2)创建工程,并添加一个cpp文件,在cpp文件中添加如下代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void insertion(int a[], int n)
{
int i, j;
int t;
for (i = 1; i < n; i++)
{
t = a[i];
for (j = i - 1; j >= 0 && t < a[j]; j--)
a[j + 1] = a[j];
a[j + 1] = t;
}
}
int main()
{
int a[1000], n, i;
printf("请输入数据个数:");
scanf("%d", &n);
printf("请输入%d个整数:\n",n);
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
insertion(a, n);
printf("排序后:\n");
for (i = 0; i < n; i++)
printf("%d ", a[i]);
return 0;
}
(3)编译运行
(4)示例输入和输出:
【以下回答由 GPT 生成】
当然可以帮您解答!
下面是一段完整的C语言代码实现插入排序算法,并添加了注释以帮助您理解算法的执行步骤:
#include <stdio.h>
void insertionSort(int arr[], int n) {
int i, key, j;
for (i = 1; i < n; i++) {
key = arr[i];
j = i - 1;
// 将arr[0..i-1]中大于key的元素移动到后面一位
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key; // 将key插入到正确的位置
}
}
int main() {
int arr[] = {12, 11, 13, 5, 6};
int n = sizeof(arr) / sizeof(arr[0]);
insertionSort(arr, n);
printf("排序后的数组:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
代码中,insertionSort
函数实现了插入排序算法,main
函数中的示例数组arr
经过排序后会输出到屏幕上。
希望这段代码对您有所帮助。如果您对算法的具体执行步骤有进一步的疑问,请随时提问。
【相关推荐】
void main()
{
int a[] = {1,2,3,4,5,6,7,8,9,10,9,8,7,6,5,4,3,2,1};
intsertion(a,sizeof(a));
}