Bubblesort

时间:2016-07-02 21:56:03

标签: c arrays sorting

  

你好!对不起,代码不能更短,每一行都可以   输出的问题。这是一个bubbleort代码。 QUELL是文件im   读。该文件有3390行数字。 /// Herer是问题所在:   当我输入已排序的数组时,第一行始终保持不变,   喜欢它永远不会改变。我该如何解决这个问题?

    int sorta[3390];
    for(int i=0; i < 3390; ++i){
        fgets(string, MAXZEILE, QUELL);
        sscanf(string, "%d", &a);
        sorta[i]=a;
    }
    for(int y=0; y < 3390; ++y){
    for(int x=3388; x>y; --x){
        if (sorta[x] >= sorta[x+1]){
        int tmp = sorta[x];
        sorta[x] = sorta[x+1];
        sorta[x+1] = tmp;

1 个答案:

答案 0 :(得分:0)

内循环只要x>y迭代。这将错过您希望x等于y的最后一次迭代。长话短说 - 用>替换>=,你应该没问题:

for(int y=0; y < 3390; ++y) {
    for(int x=3388; x >= y; --x) {
    // Here -----------^