1基本排序包括选择、插入、冒泡、希尔排序。
2基本排序适用于需要排序元素不是很多的小型文件(几十个或几百个)或基本有序文件(希尔排序)。
3使用基本排序的好处:
1)不用消耗太多精力在系统接口和排序的实现上,错误率低。
2)开销很小,通常只有中间变量用于交换。而快排、归并都存在退化文件过大的问题。
3)对于基本有序或包含大量重复关键字文件效率很高。
4)相对复杂排序,基本排序算法很多是稳定的(也看怎么写)。
4算法的比较
1)选择排序
a.大概用N^2/2次比较操作和N次交换操作
b.执行时间由比较操作数目决定,运行时间对文件中已经有序的部分依赖较少
c.在“元素比较大,关键字比较小的文件”中应该优先选择,因为这是所有算法中移动数据最少的。
2)插入排序
a.n^2/4次比较 n^2/4次交换
b.运行时间与数据原始排列顺序密切相关。
c.在“文件较大,且关键字基本有序(或有序)”下效率很高。
3)冒泡排序
a.效率最低的排序,n^2/2次比较 n^2/2次交换
b.优点就是好实现,稳定排序。
4)希尔排序
a.插入排序的扩展,具体效率与步长序列有关。Knuth发现N(log N)^2 N^1.25 N^(1 + 1/(lg N)^1/2)都比较适合。
b.有许多性质和特性