我在计算机考研复习过程中,发现了一些难以理解的概念(主要是高数/线代/数据结构),它们在教科书中零散地分布,有时候逻辑上并不一致和连贯。为了弄清楚这些内容的最核心部分,试图将其去粗取精,用自己的逻辑,将这些内容浓缩成一系列csdn博客文章。
排序的概念
(1)排序
是指按照序列的关键字(Key)对一组序列进行排序,使其序列中的关键字呈现非递减/非递增状态。
(2)排序的稳定性
如果一种排序算法,对于待排序序列中的任何具有相同Key的元素,让这些元素能够在排序后,出现的次序和排序前保持一致,那么称这种排序算法是稳定的。
如果不能保证,则称其为不稳定的。
排序的分类
翻了两天严蔚敏老师的《C语言数据结构》,发现还是画一张图比较直观。详细的算法实现和复杂度分析之后再写吧。
如果手机上看不清楚,可以点击图片放大查看原图。我在iPhone13的csdn软件上试了下,效果非常清晰。
画这个图花了我大概6个小时的时间,应该是囊括了常见的排序算法和分类标准,以及它们之间的逻辑关系。
画图软件:draw.io
如果你觉得这篇文章对你有用,或者认为我的知识劳动成果对你很有价值,那么不妨点个赞和收藏,加个关注,为我的博客增加一些流量和影响力,鼓励我的创作。
参考资料:《C语言数据结构(严蔚敏,2015版)》