插入排序算法具体上机完整步骤

img


算法1.1完整应该如何上机 在添加main主函数后依然无法编译 求解答 最好有上机完整步骤

(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)示例输入和输出:

img

【以下回答由 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));
}