for (int index = 0; index < size -1; index ++) {
    for (int index2 = 0; index2 < size - index; index2 ++) {
        if (index2 != (size - index) && array[index2] > array[index2 + 1] ) {
           store = array[index2 + 1];
          array[index2 + 1] = array[index2];
          array[index2] = store;
          printf ("%d",array[index2]);
          swap ++;
          comparison ++;
        }
    }
}

这是使用气泡排序算法交换和比较数组元素的代码。它适用于所有情况,但有两个元素的数组除外。
我用C语言编写这个程序。我用指针来声明数组。
例如:
input: [2,0],
output: [0,1]

intput: [3.8],
output: [3,1]

最佳答案

只差一个错误。根据您的代码,第二个循环应该是

for (int index2 = 0; index2 < size - index -1; index2 ++){ ...

07-26 06:04