为什么要学排序?
可能大家在学习排序算法的时候会有⼀个疑惑:⽆论是 C 还是 C++,都已经提供了 sort 函数,为什么还要花⼤量的时间去学习排序算法呢?不如把时间⽤在学习别的算法上。这个想法是⽚⾯的。
- 虽然接下来要学习的排序算法,在以后做题中⼀半以上都不会⽤到。但是,不要单纯的想着往后做题⽤到它们。这些算法思想,将会伴随我们学习后⾯的知识。比如买菜的时候,我们并不会用到高等数学知识,但我们在学习数学的过程中培养出来严谨的逻辑思维会伴随着我们往后解决别的问题,⽐如堆排序中的贪⼼思想,归并排序⾥⾯的分治思想,快速排序⾥⾯的递归思想等。学习这些算法能起到预习的作⽤,后续学到对应算法的时候能够更加得⼼应⼿。
- 除了算法思想,我们在学习这些算法的过程中,还会锻炼:如何处理写代码时的细节问题,如何优化算法,遇⻅ bug 如何调试,分析时空复杂度等等。
因此,希望我们不要抱着⽆所谓的⼼态来学习排序算法,还是需要重视起来。能做到每⼀种排序算法都能理解原理,掌握算法流程以及时空复杂度,并且能⽤代码实现出来。代码能⼒其实是慢慢培养的,⼤家写的每⼀⾏代码都是不会⽩费的,一起加油!