数据结构和算法的重要性想必各位在江湖上早就有所耳闻。它对我们最直接的影响就是面试,一般来说,程序员一面都会涉及数据结构和算法知识,尤其是当前找工作比较难的情况下,各个公司会更加重视对候选人基本能力的考察。另外的影响是工作,以我为例,最开始在一家小公司做大数据的时候,由于数据量较大而计算资源不足,所以需要想尽各种办法优化软件的性能。最难解决的问题就是空间搜索效率,当时用了kd-tree这种数据结构,以及最短路径算法(SPFA)。当然大部分情况下像这种常见的算法调用现有的包即可,但有些时候需要结合业务做一些改进,这时候有扎实的基本功就显得尤为重要了。
正好最近关注到学习数据结构和算法的两个工具,特别好用。下面我就分别介绍下这两个工具,各位可以收藏一下,说不定以后能用到。
第一个工具是数据结构和算法可视化工具——Data Structure Visualizations。该工具由旧金山大学开发,地址:
https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
它的作用是将数据结构和算法用可视化的方式展现出来,方便我们理解其中的原理。类似的工具还挺多的,我对比了四五个之后,觉得这个是最好的。内容丰富、容易操作、访问速度快且容易理解。虽然 站是英文的,但英文并不多,且都是些容易理解的术语。下面我就带大家体验简单体验一下该工具如何使用。首先,来看看该工具包含多少内容。
其实从这里我们也能大概看出红黑树和B+树的一些区别,上图B+树中的元素比红黑树多,然而树的高度却比红黑树低。这一特点就决定了在数据库场景中,不可能用红黑树做索引,那会导致树高度非常高。这种可视化的方式体感很强。
上面介绍了可视化工具,下面再介绍一个数据结构和算法的代码库,地址:
https://github.com/TheAlgorithms/Python
https://github.com/TheAlgorithms/Javascript
https://github.com/TheAlgorithms/Java
https://github.com/TheAlgorithms/C
先来看看都包含什么内容
二分查找过程如下:
这里既包含了查找过程,又包含了每一步查找对应的执行代码,非常方便学习。
文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览33815 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!