1 初级排序算法
排序算法关注的主要是重新排列数组元素,其中每个元素都有一个主键。排序算法是将所有元素主键按某种方式排列(通常是按照大小或是字母顺序)。排序后索引较大的主键大于等于索引较小的主键。
排序算法类的模板
|
|
- 排序成本模型:研究排序算法时,需要计算比较和交换的次数。对于不交换元素的算法,计算访问数组的次数。
- 额外内存使用:排序算法的额外内存开销和运行时间同等重要。排序算法可分两类:除了函数调用所需的栈和固定数目的实例变量之外无需额外内存的原地排序算法,以及需要额外内存空间来存储另一份数组副本的其它排序算法。
- 数据类型:上述排序算法模板适用于任何实现了Comparable接口的数据类型。例如,Java中封装的Integer和Double,以及String和其他许多高级数据类型(如File和URL)都实现了Comparable接口,因此可以直接调用这些类型的数组作为参数调用我们自己实现的排序方法。
例如——用快排对N个随机的Double数据进行排序:
|
|