gpt4 book ai didi

c - 插入排序不打印 C 中的所有值

转载 作者:行者123 更新时间:2023-11-30 14:31:37 24 4
gpt4 key购买 nike

插入排序不起作用,它只打印一些值。有谁知道我可以做什么来解决它?

void insertion(int Array[], int n) {
for (int i = 1; i < n; i++) {
int j = i;
while (j >= 0 && Array[j] < Array[j - 1]) {
int temp = Array[j];
Array[j] = Array[j - 1];
Array[j - 1] = temp;
j--;
}
}
}

最佳答案

内部循环中的测试不正确:当j == 0时,您读取并可能修改偏移量-1处的元素,该元素具有未定义的行为,可能会导致输出不正确,但由于您没有发布输出代码,因此可能还有其他问题。

这是修改后的版本:

void insertion(int Array[], int n) {
for (int i = 1; i < n; i++) {
for (int j = i; j > 0 && Array[j] < Array[j - 1]; j--) {
int temp = Array[j];
Array[j] = Array[j - 1];
Array[j - 1] = temp;
}
}
}

关于c - 插入排序不打印 C 中的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60215530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com