插入排序

2018-07-23  本文已影响0人  xcreal

for (int i = 1; i < N; i++)

{ // 将 a[i] 插入到 a[i-1]、a[i-2]、a[i-3]...之中

for (int j = i; j > 0 && less(a[j], a[j-1]); j--)

exch(a,j,j-1);

}

第一次循环,i=1,j=1,若a[j]>a[j-1],交换a[j]与a[j-1];

要大幅提高插入排序的速度并不难,只需要在内循环中将较大的元素都向右移动而不总是交换

两个元素(这样访问数组的次数就能减半)。

上一篇 下一篇

猜你喜欢

热点阅读