csdn_SUSAN
2014-11-19 07:17
采纳率: 100%
浏览 2.0k
已采纳

关于希尔排序算法的程序问题

源程序为
void shellsort3(int a[], int n)

{
int i, j, gap;

for (gap = n / 2; gap > 0; gap /= 2)

for (i = gap; i < n; i++)

for (j = i - gap; j >= 0 && a[j] > a[j + gap]; j -= gap)

Swap(a[j], a[j + gap]);

}

如果修改为:
void shellsort3(int a[], int n)

{
int i, j, gap;
gap = 1;
for (i = gap; i < n; i++)

for (j = i - gap; j >= 0 && a[j] > a[j + gap]; j -= gap)

Swap(a[j], a[j + gap]);

}

依然能够实现正确的排序,这是为什么呢

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • threenewbee 2014-11-19 11:08
    已采纳

    修改为后者性能会降低。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题