选择排序

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

{ // 将a[i]和a[i+1..N]中最小的元素交换

int min = i; // 最小元素的索引

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

if (less(a[j], a[min])) min = j;

exch(a, i, min);

}

第一次循环,i=0时,j=1,在第一行中找到最小下标赋值给min,再交换a[min]到a[0];

第二次循环,i=1,j=2,在第二行中找到最小下标赋值给min,再交换a[min]到a[1];

输入文件 String[] a = new In("tiny.txt").readAllStrings();

一个已经有序的数组或是主键全部相等的数组和一个元素随机排列的数组所用的排序时间竟然一样长

数据移动是最少的。

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