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没有对我数组中的数字进行排序。
我找不到出什么问题了。你有什么想法吗?
发布于 2014-01-12 22:53:37
您必须在数组-1中包括A。不是在[]之外。您的代码不只是切赫,如果A[j]减去1中的值大于A[j]中的值。这显然总是false。
同样,在交换函数中,您不会传递数组A的沉思。实际上,swap()什么也不做。
试一试
if (A[j-1]>A[j]) {
ord = false;
int temp=A[j-1];
A[j-1]=A[j];
A[j]=temp;https://stackoverflow.com/questions/21081326
复制相似问题