java重学数据结构和算法(持续更新)

阅读: 评论:0

java重学数据结构和算法(持续更新)

java重学数据结构和算法(持续更新)

前言:

       作为一个程序员,我认为算法和数据结构是每一个程序员必须要掌握的技能。工作中和和面试中一般都是必问题目,尤其是一些大厂对于算法和数据结构的要求就更高了。意识到算法和数据结构的重要性,我决定重新学习数据结构和算法。因此我在拉钩上学习了《重学数据结构与算法》由公瑾老师  中科院博士,资深算法专家主讲的课程。现在我也在同步的跟进学习,学完以后觉得很多不清楚的概念和思想都豁然开朗,公瑾老师由概念到实际的案列循环渐进的讲解让我收获良多。也建议大家可以学习下,哈哈,首先我自己肯定不是托,只是觉得确实还是对自己有帮助的。因此决定自己把每一章学习的内容自己写一个“学后感”把,把学习到的知识记录总结下来,加上自己的一些理解,如有不对的地方欢迎指正大家交流分享。

  算法和数据结构的重要性

         为什么要学习算法和数据结构,在实际的工作当中我们遇到各种各样的复杂业务场景。因此选择适合的算法和数据结构能够大大提升代码的运行效率。而如何衡量一段java代码的运行的效率呢?这里引出两个关键词,“时间复杂度”和"空间复杂度",通过判定这两个维度即可知道一段代码的运行的效率。那么什么是时间复杂度?什么是空间复杂度呢?这里聚了一个列子,大家可以闭上眼睛想象以下,一个红绿灯十字路口,每辆车子以此通行,红灯停,绿灯行这里每辆车子都会消耗一定的时间,那么我理解可以把它认为这其实就是代码中就是“时间复杂度”。那么有没有什么更好的办法让车子更快通行呢,答案当然是有的,在十字路口建立一个横向的立交桥,这样横向的车子就减少了通行时间,这就是“空间复杂度”。
       举一个实际的例子:

                 一个登录系统,通过登录id进行匹配登录。现在有一个可行的办法是每条记录去匹配ID是否一致,然而更高效的解决办法就是采用二分查找,提前在数据库中按照某个字母条件进行排序,这样就可以从中间查找,通过二分查找不断缩小查找范围。加入数据库有16条数据,那么无无非就是16次匹配与log₂16 = 4次匹配的区别。但是数据库用户一旦起来多达1000万条是可就是1000万次匹配24次的区别了(log₂10000000 = 23.25)。这里的log底数是2

     因此可见数据结构和算法的重要性,已经成为大厂面试的必问题。而对于工作中遇到复杂的系统,大的数据量时,好的算法和数据结构直接影响系统的系统和用户的体验。(持续更新)

本文发布于:2024-01-29 05:23:45,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170647702813002.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据结构   算法   java
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23