【发布时间】:2014-02-04 04:52:55
【问题描述】:
我在上离散数学课,其中一个硬件问题是实现冒泡排序。这是我徒劳的尝试,因为它不输出解决方案。请指教。谢谢。
#include <iostream>
#include <cstdlib>
using namespace std;
void BubbleSort();
int array1[100] = {0};
int k;
int main()
{
cout << "Enter your numbers and when you are done, enter 0000:\n";
int x = 0;
int i;
while (i != 0000)
{
cin >> i;
array1[x] = i;
x++;
k = x;
}
BubbleSort();
system("pause");
return 0;
}
void BubbleSort(){
int temp;
for( int i = 0; i < k; i++ ){
if ( array1[i] > array1[i+1]){
temp = array1[i+1];
array1[i+1] = array1[i];
array1[i] = temp;
}
}
int x = 0;
while (x <= k)
{
cout << array1[x] << "\n";
x++;
}
}
请只使用基本的编程技巧,因为这是我的第一堂编程课。谢谢你。 编辑:修复了关系运算符。但现在我得到了不正确的结果。
【问题讨论】:
-
i未初始化,因此它甚至可能永远不会进入您的循环进行输入。在不知道实际错误是什么的情况下,很难提供任何帮助。 -
您无法在线性时间内完成冒泡排序。你需要一个嵌套循环。并请显式将 'i' 初始化为非零值。
标签: c++ arrays sorting bubble-sort