在进行六个整数用冒泡排序法从小到大排序时,将比大小抽象出来后却出现错误,这是怎么回事呢?
并且如果变成升序的话需要怎么变呢,比如当flag=1时为升序,flag=0时为降序,这种变法又应该怎么变呢?
在进行六个整数用冒泡排序法从小到大排序时,将比大小抽象出来后却出现错误,这是怎么回事呢?
并且如果变成升序的话需要怎么变呢,比如当flag=1时为升序,flag=0时为降序,这种变法又应该怎么变呢?
修改如下,供参考:
#include <stdio.h>
void BubbleSort(int a[], int n, int flag)
{
int i, j, t;
for (j = n - 1; j > 0; j--)
{
for (i = 0; i < j; i++)
{
if (a[i] > a[i + 1] && flag || a[i] < a[i + 1] && !flag)
{
t = a[i];
a[i] = a[i + 1];
a[i + 1] = t;
}
}
}
}
int main()
{
int b[6] = { 2,1,5,4,6,3 }, i;
BubbleSort(b, 6, 1);
for (i = 0; i < 6; i++)
printf("%d ", b[i]);
printf("\n");
BubbleSort(b, 6, 0);
for (i = 0; i < 6; i++)
printf("%d ", b[i]);
return 0;
}