排序——插入排序

void print_arr(int a[], int n)
{
    for (int i = 0;i < n;i++)
    {
        printf("%d ", a[i]);
    }
    printf("\n");
}

void insertion(int arr[], int n)
{
    print_arr(arr, n);
    for (int i = 1;i < n;i++)
    {
        int key = arr[i];
        int j = i - 1; 
        while (j >= 0 && arr[j] > key)
        {
            arr[j + 1] = arr[j];
            j--;
        }
        arr[j + 1] = key;
        print_arr(arr, n);
    }
}
int main()
{
    int arr[100];
    int n = 0;
    scanf("%d", &n);
    for (int i = 0;i < n;i++)
    {
        scanf("%d", &arr[i]);
    }
    insertion(arr, n);
    return 0;
}

排序——插入排序_第1张图片

你可能感兴趣的:(算法,数据结构,排序算法)