【问题标题】:Bubble sort not giving correct output c++冒泡排序没有给出正确的输出c ++
【发布时间】:2022-06-10 22:41:24
【问题描述】:

我编写了这个冒泡排序代码,但它似乎不起作用,谁能解释一下原因?

#include <iostream>
using namespace std;
int main(){
    int numbers[5]={2,7,9,3,4};
    
    for(int i=0;i<5;i++){
        for(int j=0;j<i;j++){
            if(numbers[j]>numbers[j+1]){
                int temp=numbers[j];
                numbers[j]=numbers[j+1];
                numbers[j+1]=temp;
            }

        }
    }
    for(int i=0;i<5;i++){
        cout<<numbers[i]<<endl;
    }
}

【问题讨论】:

  • "Doesn't work" 在诊断您的实际问题时没有任何用处。请具体说明!!
  • @mch 我知道,评论已删除。我想我们等待 OP 说出“似乎不起作用”是什么意思
  • @john 当 i==4 时,因为 j 的最大值是 i-1,所以 j+1 的索引为 4 。所以它有效吗?
  • 您的内部循环迭代方向错误。它应该从(5-1) 迭代到i。使用您当前的代码,数组末尾的 4 仅检查一次,因此只能移动一次。
  • 内循环必须至少运行到j&lt;5-i

标签: c++ c++11


猜你喜欢
  • 2018-12-06
  • 2012-04-19
  • 2016-02-18
  • 1970-01-01
  • 2017-10-24
  • 2014-02-13
  • 1970-01-01
  • 2021-06-05
  • 1970-01-01
相关资源
最近更新 更多