如何找出冒泡排序不起作用的原因?

问题描述 投票:0回答:1

我正在尝试学习冒泡排序算法。互联网上的大多数代码都使用布尔变量,但我想在不使用布尔变量的情况下执行此操作。

# include <iostream>
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;
    }

}
c bubble-sort
1个回答
3
投票

将代码更改为:

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<-1 it's not, so the following loop won't run
  2. 当n=1时,你的k从0开始<0 it's not, so the following loop never works
© www.soinside.com 2019 - 2024. All rights reserved.