当着手解决一个新问题时,先找某些相当明显的解决方法,然后再试图改进它,往往是明智的。
为什么会有这么多种排序算法。因为每种方法都有其优缺点,对于某些数据和硬件配置来说,它有可能超过其他的方法。目前许多最好的方法,都是针对特定的机器,根据特定的目的,对特定对象进行排序所得到的。
计数排序:对元素两两比较,直接确定元素位置。需要一个同样大小的辅助数组。
分布计数排序:假设元素分布在一个小的范围内,同样需要辅助数组,但辅助数组大小是原数组的元素的范围。
插入排序:由于元素是被安放到适当的层次中去,这种排序方法通常称为筛选(sifting)或陷入(sinking)技术。
直接插入排序
二叉插入:利用了二分查找算法确定位置。但没有解决数据移动的问题。
二路插入:头一项被放置在一个输入区域中心,通过向左或向右移动腾出地方。
对计算机编程艺术的感觉:
介绍算法,讲的很深入,值得好好阅读,因而把该系列的书加入阅读范围之内。