gpt4 book ai didi

c - void function bubble_sort 不对数组进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 01:31:56 24 4
gpt4 key购买 nike

A 正在尝试实现一些排序算法,我必须计算它们花费了多少时间。这是我写的函数:

void bubble_sort(int A[], int len) {
bool ord = false;
for (int i=0; i<len-1 && ord==false; i++) {
ord = true;
for (int j=len-1; j>i; j--) {
if (A[j]-1>A[j]) {
ord = false;
swap(A[j]-1, A[j]);
}
}
}
}

当然这里有一个典型的 swap() 函数:

void swap(int x, int y) {
int d;
d = x;
x = y;
y = d;
}

我对插入排序、选择排序和归并排序没有问题。顺便说一句,bubble_sort 没有对我的数组中的数字进行排序。

我找不到问题所在。你有什么想法吗?

最佳答案

在 C 中,函数参数是按值传递的,而不是按引用传递的。你的 swap() 函数什么都不做(它甚至不返回......你的编译器没有提示吗?)

要实际排序,您必须将 swap() 更改为

void swap(int *x, int *y) {
int d = *x;
*x = *y;
*y = d;
return;
}

并调用它

swap(&A[j-1], &A[j]);

关于c - void function bubble_sort 不对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21081326/

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