一个太不严谨的分类
先扔个结论:
1.基于交换实现:冒泡,选择
2.基于插入实现:插入排序,希尔排序
3.基于递归实现:快速排序,归并排序,堆排序
4.基于桶思想实现:计数排序,基数排序
在解释一下
首先,这个分类写出来一定是被骂的。。因为分类不严谨啊,例如堆排序明明有递归和非递归两种实现方式。
但是依然这么写出来,主要是为了方面记忆。因为这样子就可以在编码的时候有个方向去做了。其实自己写博客主要是为了自己看,所以我就这样随着我的思维这么写了。如果有观众不打算看完这个细节的话,咳咳,您可以自行查找严谨的分类方法。
学这个有什么用
也不知道为什么,现在好多人都忙着在学习之前理解到底是有什么收益。。。既然实习找工作的时候会考这些东西,肯定是有用的。就和学理论课一样,理论知识在刚学完的时候好像只能用来做题,工作之后大家也说用不到。个人的理解,理论知识用处有两点:
1.在处理复杂问题的时候可以通过抽象成理论模型来获得完善的解决方案。
2.为自己打下一个完善的基础,这个基础是为了当工作内容转型是依然可以在较短时内上手并适应。
同样经典算法也是这样的作用。在这一系列之后的文章中,我会尽量抽象出用法。