0
点赞
收藏
分享

微信扫一扫

每日一题——找到消失的数字

前面我们讲了线性数据结构和非线性数据解结构,这里我们讲一下线性数据结构上的算法——排序算法。

工作中我们实际上不用自己去写排序算法,直接调用封装好的API,比如List的Sort()方法。它们会去自动选择最优的排序算法。那么我们为什么还要学习这些算法呢?

因为通过它们,可以帮助我们建立一些基础的编程思维。比如如何平衡时间和空间复杂度,怎么更有效地利用存储空间。

除此之外,理解不同的设计思路,会让我们真切地感受到,写代码不只是单纯写写业务。虽然功能相同 ,但好的设计会带来更高的效率。这也是编程的乐趣所在。当我们想要设计好的算法时,就要综合考虑数据的各种特征,来思考是否有更多有效算法。

下面进入正题。

常见的排序算法有冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、桶排序、基数排序。

不同的排序算法有不同的适用场景,字符串的排序和数字的排序肯定还是有所区别。

下面我们的讲述都以数字为例子,不写代码,只讲思路。代码和算法的学习都可以参考Algorithm Visualizer,最好自己写写练练。我一直坚信,思路有了,写代码不过是分分钟的事情。先设计、后代码,是一个好习惯。当然了,也不能死板。当没什么思路的时候

举报

相关推荐

0 条评论