首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >冒泡排序显示

冒泡排序显示
EN

Stack Overflow用户
提问于 2012-03-08 10:39:06
回答 2查看 2.5K关注 0票数 2
代码语言:javascript
复制
#include <iostream>
#include <string>

using namespace std;

void bubbleSort(int data[], int n);

int main()
{
cout << "Enter ten unsorted integers..." << endl;

int a[10];
for (int i = 0; i < 10; ++  i)
{
    cout << "[" << i << "] = ";
    cin >> a[i];
}

cout << endl << "Unsorted List = ";
    for (int i = 0; i < 10; ++i)
    cout << a[i] << ", ";

cout << endl;

cout << "Sorting..." << endl;
cout << "Sorted List = ";
bubbleSort(a, 10);
}

void bubbleSort(int data[], int n)
{
int j = 0;
bool nextEnd = true;
while (nextEnd)
{
    nextEnd = false;
    ++j;
    for (int i = 0; i < n - j; ++i) 
    {
        if (data[i] > data[i+1]) 
        {
            int temp = data[i];
            data[i] = data[i+1];
            data[i+1] = data[i];
            nextEnd = true;
        }
    }
}

for (int i = 0; i < 10; ++i)
cout << data[i] << ", ";
}

这个程序非常简单。将十个值输入到数组中。未排序地显示它们。将它们发送到bubbleSort函数,对它们进行排序,最后显示排序后的列表。我遇到的问题是我不能让输出恢复工作。我用最后一行代码进行了测试,但这不起作用。我也不认为我的排序搞砸了。如何正确显示此排序列表?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-08 10:45:22

问题出在你的“交换”上。它应该是:

代码语言:javascript
复制
int temp = data[i];
data[i] = data[i+1];
data[i+1] = temp;

经过编辑测试,并且可以很好地进行更正。

票数 2
EN

Stack Overflow用户

发布于 2012-03-08 10:45:14

冒泡排序中至少有一个错误。分配给data[i+1]的值不正确。它应该是:

代码语言:javascript
复制
data[i+1] = temp;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9612198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档