C 比较以前插入排序算法的数组元素

C 比较以前插入排序算法的数组元素,c,arrays,algorithm,sorting,C,Arrays,Algorithm,Sorting,我正在使用插入排序算法。正如您所知,我们需要将数组元素与以前的数组元素进行比较。我尝试使用嵌套循环执行此操作: scanf("%d", &size); //gets array size int array[size]; int temp = 0; for (int i = 0; i < size; i++) { scanf("%d", &array[i]); } // Takes the index of array. /* Sorting part be

我正在使用插入排序算法。正如您所知,我们需要将数组元素与以前的数组元素进行比较。我尝试使用嵌套循环执行此操作:

scanf("%d", &size); //gets array size

int array[size];
int temp = 0;

for (int i = 0; i < size; i++) {
    scanf("%d", &array[i]);
} // Takes the index of array.

/*
 Sorting part begins.
 */

for (int j = size - 1; j <= 0; j--) {
    int pseudoJ;

    pseudoJ = j;

    while (1) {
        if (array[pseudoJ] < array[pseudoJ - 1]) {
            temp = array[pseudoJ];
            array[pseudoJ] = array[pseudoJ - 1];
            array[pseudoJ - 1] = temp;
            pseudoJ--;
        } else
            break;
    }  
}

/*
 * Sorting Par Ends.
 */
scanf(“%d”、&size)//获取数组大小
int数组[大小];
内部温度=0;
对于(int i=0;i2>1)而言,

我希望输出
1>2>3
,但输出仍然是
3>2>1

发布的代码有多个问题:


  • 外部循环立即退出:测试应该是
    j>0
    而不是
    j。您是否尝试使用调试器单步执行代码?不,我不允许使用gdb。请仔细查看第二个
    循环的边界条件。是的,当我更改几行代码时,它会比较上一个数组元素但是没有和以前的相比..谢谢你的贡献!