本人大二,希望各位大神帮帮忙,不知道怎么写算法,怎么定义算法
数据结构和算法是计算机科学中最重要的课程,作为一名Google的软件工程师,我经常看到一些求职者或刚毕业的学生,他们对于数据结构和算法的学习是远远不够的。这不是说他们看的书是有问题的,或教授们教错了内容,而是学生对这个课程的理解是不到位的。 扎实掌握数据结构和算法的关键并不是要对每一种数据结构和它的子形式都做详尽的调查,然后记住它们的时间复杂度和空间复杂度。记住这些看起来很棒,也很吸引人,但说实话,你在实际中很少会用到它们。不管怎样,在你的职业生涯中都不会让你实现一个红黑树结点删除的算法,但是,你必须要做到而且轻松的发现在什么时候你需要用二叉搜索树来解决问题,这个是你经常要用到的技能。 所以,停止背诵那些没用的东西吧,从现在开始学好下面这两件基本并且重要的事情: 1.形象化数据结构。直观的理解某种数据结构是什么样的,使用起来是什么样的,在抽象和实际的内存中是如何存储的。这是一件单独的并且很重要的事情,从最简单的栈和队列到很复杂的平衡树。你可以把它们画出来,直观地展现在你脑海里,无论你用什么方式,最重要的就是你要直观地去理解。 2.知道在自己的代码中何时,并如何去使用这些不同的数据结构和算法。这一点对于学生来说可能有点难,因为在他们的作业中不需要思考这些。没有关系,你以后会意识到如果你不参加一个实际的项目,你就永远不会理解数据结构,你也不会发现哈希算法是你解决性能问题的方法。但是,即使是学生,你也应该学习一些实用性强的内容,比如什么时候用哈希表?什么时候用树结构?什么时候最小堆是最好的解决方案?
http://blog.csdn.net/liuyi1207164339/article/details/48312149
当你对程序有了深刻的理解,我觉得算法就会非常的顺其自然.
https://www.cnblogs.com/skywang12345/p/3603935.html 看看这个 可以去你们学校图书馆 借几本数据结构的书看看
怀念当初自己大二的时候 没有去过图书馆 现在想想 老后悔了
可以看我的一篇博客,易懂
算法这种东西都是遇到实际代码问题,需要优化或者其他异常的时候才去了解的,比如需要排序的时候,直接Sort();就可以,没必要自己去实现排序算法。