上QQ阅读APP看书,第一时间看更新
第2章 排序
排序就是将一组对象按照某种逻辑顺序重新排列的过程。比如,信用卡账单中的交易是按照日期排序的——这种排序很可能使用了某种排序算法。在计算时代早期,大家普遍认为30%的计算周期都用在了排序上。如果今天这个比例降低了,可能的原因之一是如今的排序算法更加高效,而并非排序的重要性降低了。现在计算机的广泛使用使得数据无处不在,而整理数据的第一步通常就是进行排序。所有的计算机系统都实现了各种排序算法以供系统和用户使用。
即使你只是使用标准库中的排序函数,学习排序算法仍然有三大实际意义:
❏对排序算法的分析将有助于你全面理解本书中比较算法性能的方法;
❏类似的技术也能有效解决其他类型的问题;
❏排序算法常常是我们解决其他问题的第一步。
更重要的是这些算法都很经典、优雅和高效。
排序在商业数据处理和现代科学计算中有着重要的地位,它能够应用于事物处理、组合优化、天体物理学、分子动力学、语言学、基因组学、天气预报和很多其他领域。其中一种排序算法(快速排序,见2.3节)甚至被誉为20世纪科学和工程领域的十大算法之一。
在本章中我们将学习几种经典的排序算法,并高效地实现了“优先队列”这种基础数据类型。我们将讨论比较排序算法的理论基础并在本章结尾总结若干排序算法和优先队列的应用。