谁能告诉我为什么我的冒泡排序不起作用?

时间:2016-10-29 05:36:29

标签: bubble-sort

我正在尝试学习冒泡排序算法。互联网上的大部分代码都是 使用布尔变量。但我想在没有布尔的情况下这样做。

包括

using namespace std;

int main ()
{
    int n;
    int k;
    int temp;
    int arr[6] = {9,7,8,6,4,2};

    for(n=0;n<6;n++){
        for(k=0;k<n-1;k++){
            if(arr[k]>arr[k+1]){
                temp = arr[k+1];
                arr[k+1]=arr[n];
                arr[k] = temp;
            }
        }
    }
    for(n=0;n<6;n++){
        cout<< arr[n] << endl;
    }

}

1 个答案:

答案 0 :(得分:4)

将您的代码更改为

for(n=0;n<6;n++){
        for(k=0;k<5;k++){
            if(arr[k]>arr[k+1]){
                temp = arr[k];
                arr[k]=arr[k+1];
                arr[k+1] = temp;
            }
        }
    }

你的逻辑永远不会起作用,因为:

  1. 当n = 0时,你的k = 0并且你正在检查k&lt; -1它不是,所以下面的循环不会运行
  2. 当n = 1时,你的k从0开始而k <0不是,所以下面的循环永远不会起作用
  3. 希望有所帮助