之前的文章咱们已经聊过了「 数组和链表 」、「 堆栈 」、「 队列 」和「 递归 」,这些要么是基础的数据结构,要么就是巧妙的编程方法。从今天起咱们来进入真正的算法阶段,看一看“排序算法”。排序算法有很多,如:「冒泡排序」、「插入排序」、「选择排序」、「希尔排序」、「堆排序」、「归并排序」、「快速排序」、「桶排序」、「计数排序」、「基数排序」等等。
下图是常用排序算法的时间空间复杂度:
排序算法这么多,这里先将排序算法做个简单分类:
这些分类其实并没有那么严格,大多都是根据排序算法的特性总结的,不需要记住,搞懂了各种排序的特点之后也就自然而然的理解了。
这么多排序算法,我们应该怎么去评估它们呢?
一般而言,评估一个排序算法的质量主要从以下几个角度去看:
以上,就是对数据结构中「 排序算法 」的一些思考,下一篇就从「冒泡排序」开始聊起。
码字不易啊,喜欢的话不妨转发朋友,或点击文章右下角的“在看”吧。?
本文原创发布于微信公众号「 不止思考 」,欢迎关注。涉及 思维认知、个人成长、架构、大数据、Web技术 等。