该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
参数为数组时候最好用 指针来传递。
你用 ARRAY[i] 的话会打乱数组传递位置。
冒泡方法你理解似乎有问题,
if(s
if(array[i] > array[i++])
这里更是又问题,你用的是后序自增,比较前会增加吗?
就算会,哪 两个还不是array[i] 永远相等,因为i==i
你的应该是在递归里面掉进死循环了。
我按书上算法改了一下,
#include
#include
void bubble_sort(int array[], int length);
void huanwei(int a, int b);
int main()
{
int array[10] = {9, 8, 6, 3, 7, 5, 2, 4, 1, 0};
int length = sizeof(array) / sizeof(array[0]);
bubble_sort(array, length);
getchar();
return 0;
}
void bubble_sort(int array[], int length)
{
int i, order, m;
int s = 0;
for(m = 0; m
{
for(i = 0; i
{
int j = i+1;
if(array[i] > array[j])
huanwei(array[i], array[j]);
}
}
for(order = 0; order <= 9; order++)
{
printf("%d\n", array[order]);
}
}
void huanwei(int a, int b)
{
int c;
c = a;
a = b;
b = c;
}