插入排序

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];

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。