所以我想写一个冒泡排序代码,对随机数进行降序排序。这是我写的代码:
void BubbleSort(int data[], int size)
{
for (int i = size - 1; i >= 0; i--)
{
for (int j = 0; j <=size-1; j++)
{
if (data[j] <data[j + 1])
{
swap(data[j], data[j+1]);
}
}
}
}其中交换是这样的:
void Swap(int &x, int &y)
{
int temp = x;
x = y;
y = temp;
}当我运行代码时,它不会对任何东西进行排序,它只是将随机数保持在与生成时相同的顺序。我不确定我的代码有什么问题,我试着在纸上跟踪它,它工作得很好;是不是排序函数有问题?
编辑:我刚刚修复了外部循环和内部循环,但它仍然没有排序。
谢谢!
发布于 2015-11-04 07:16:59
for (int i = size - 1; i < 0; i--)I<0永远不是真的,因为你从i>0开始
将其更改为:
for (int i = size - 1; i >= 0; i--)https://stackoverflow.com/questions/33510858
复制相似问题