排序算法(Sortingalgorithm)是计算机科学最古老、最基本的课题之一。要想成为合格的程序员,就必须理解和掌握各种排序算法,摘自阮一峰日志。那什么才是编程基础呢?真正的程序员要去修炼和学习哪些?
2 回答
小唯快跑啊
TA贡献1863条经验 获得超2个赞
作为编程的『基础』,并不是说你现在的能力有多高,而是说你的习惯、解决问题的方法和思路,会不会在未来几年内让你的能力大幅提升。野生程序员心中的『编程基础』知道常见的设计模式。你不一定系统地知道什么是『设计模式』,但是在代码编写过程中不自觉地使用了一些设计模式能快速理解一门语言的基础语法并能快速读懂以这门语言写的软件的大致逻辑。简单地说就是需要解决问题时能monkey-patching一个现有开源程序理解常见算法。我反对『掌握排序算法』这种说法。算法本身的代码实现并不是重点,参考现成代码是程序员美德。我要说的是理解算法。比如说,为什么『快速排序』并不是最快的但是仍然广泛使用?为什么一个排序算法的复杂度不能突破O(nlog(n))?在给定的前提下是否知道应该选择什么排序算法?知道怎么做troubleshooting。这里的troubleshooting很广泛:快速准确地debug手头的代码,知道如何评估并找到一个更高效的数据结构,会准确描述手头遇到的问题并在合适的网站、邮件列表、IRC求助。
添加回答
举报
0/150
提交
取消
