【问题标题】:Bubble sort all but first spot冒泡排序除了第一点
【发布时间】:2014-10-12 02:06:58
【问题描述】:

如果我将条件 (i

int sortIndexByDate(Match match[], int n)
{
    int i, j, sum[n], swapped;
    for (i = 0; i < n; i++)
        sum[i] = match[i].d.year*10000 + match[i].d.month*100 + match[i].d.day;
    do {
        swapped = false;
        for (i = 1; i < n - 1; i++) {
            if (sum[i] < sum[i + 1]) {
                swapInt(&sum[i], &sum[i+1]);
                swapMatch(&match[i], &match[i+1]);
                swapped = true;
            }
        }
        n--;
    } while (swapped);
}

【问题讨论】:

  • 您有问题吗?
  • Hmm... i &lt; n -1... 这定义了范围的 end... 但错误在 beginning 的范围...所以如果您要更改范围的开头...?

标签: c bubble-sort sorted


【解决方案1】:

您从内部循环中的i = 1 开始。因此 sum[0] 被忽略。

改成

for (i = 0; i < n-1; i++) {    

【讨论】:

  • i &lt; n - 1 是正确的,因为他正在访问sum[i]sum[i + 1]
  • @Dmitri 谢谢,我错过了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-09
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
  • 2014-03-26
  • 2015-03-06
相关资源
最近更新 更多