| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 自学数据结构和算法的 9 大工具 -> 正文阅读 |
|
[数据结构与算法]自学数据结构和算法的 9 大工具 |
Data Structure Visualization我们都知道数据结构和算法一个比较难以掌握的原因就是很难形象地在脑海中形成一个结构化的画面,尤其是当一些结构和算法比较复杂时,对人的想象能力有一定要求。 Data Structure Visualization这个网站则提供了一种将数据结构和算法进行可视化的功能,并开发了交互式的动画展示,便于理解和掌握数据结构+算法。 目前该网站已经把包括像列表、堆、栈、队列、树、哈希表、图、查找、排序、递归、动态规划等一系列主要的数据结构和算法都进行了可视化展示,非常便于初学者理解和掌握。 我们以排序算法里的「堆排序为例」,这个网站可以给出完整的可视化过程,可以说非常nice了! 而且在动画下方还可以暂停播放以及自行调节画幅大小以及动画速度等一些参数,非常便于学习。 地址:https://www.cs.usfca.edu/~galles/visualization/ Big-O Cheat Sheet提到数据结构和算法的学习,一个绕不过去的问题那就是算法复杂度,包括时间复杂度分析和空间复杂度分析。 复杂度通常会使用大O记号来表示,比如冒泡排序的平均时间复杂度是O(n^2),而快速排序的平均时间复杂度则是O(nlog(n))。 除此之外还有包括像堆、栈、队列、链表、跳表、哈希、B-Tree、堆排序、选择排序、归并排序等等一系列数据结构和算法的复杂度最好都是能要求在理解的基础上熟记的。 Big-O Cheat Sheet这个网站则把常见的数据结构和算法的各种复杂度进行了对比+整理+归纳,并制备了精美的表格,可供查阅+复习+背诵,一目了然,非常清楚。 地址:https://www.bigocheatsheet.com/ VisuAlgoVisuAlgo这个网站也提供将常见数据结构和算法进行动态可视化的功能,并且支持中文。 VisuAlgo一个比较不错的功能是除了可以动态演示算法之外,还可以按步骤进行动画演示甚至是交互,并且包含了每个步骤的解释,的确有点酷炫了。 这地方给一个归并排序的动画示例看看效果: 地址:https://visualgo.net/ Algorithm VisualizerAlgorithm Visualizer同样是一款交互式算法可视化网站,并且支持Java、JavaScript、C++等主流编程语言。 该网站内容分为三大部分,最左侧可以自由选择不同的数据结构和算法(目前支持包括二叉树、图、排序、查找、动归、贪心等很多数据结构以及算法);中间部分则进行算法可视化展示以及控制台的打印输出;最右侧用于展示算法的源码并支持修改运行并看到效果。 地址:https://algorithm-visualizer.org/ 牛客在线编程牛客题库里面的在线编程模块用于进行数据结构和算法的练习还是十分不错的,里面有不少题目是剑指offer上的题,这些基本都是求职前必刷的。 除了支持提交多种编程语言的代码之外,还有一个比较好的点是可以看到大家的题解、讨论、甚至是提交的代码,而且又是中文社区网站,这样交流和参考起来还是挺方便的。 地址:https://www.nowcoder.com/activity/oj codeforcescodeforces别名CF,一看这名字就知道有点东西。它是一家俄罗斯的网站,而且据说最早是由一群颇具开源精神的大学生们维护的。 codeforces的比赛系统和积分系统一直是被大家所熟知的。大家在上面用它的比赛系统还是比较多的,每个用户都有Rating积分,很多人都在上面享受上分带来的成就感。 除此之外,上面的题集质量也还不错,各种难度都有,在里面刷题也是非常不错的选择。 地址:http://codeforces.com/ HackerRankHackerRank其实和上面刚介绍的codeforces有点像,主要内容也包括数据结构和算法题的题库练习与比赛。 除此之外,HackerRank在其他相关的计算机技术主题上都有涉猎,比如像编程语言、SQL、数据库等等。 地址:https://www.hackerrank.com/ LeetCodeLeetCode力扣我想就不用多说了。 俗话说得好,熟刷算法300遍,不会做题也会吹。没错,就算上面提到的所有网站都没有兴趣不想看,那这里LeetCode上的数据结构和算法的题目基本是必刷的。 还记得我们那时候用LeetCode时才几百道题,现在的LeetCode题量和那时相比感觉都翻了好多倍了。 一般来说,LeetCode题量慢慢上来之后,再加上多回顾多总结多发散,慢慢地对于数据结构和算法这一块就会变得越来越有心得。没办法,这玩意没啥捷径,多思考多练习才是关键。 地址(中文版):https://leetcode-cn.com/ 地址(英文版):https://leetcode.com/ 知名OJ除了上面这些网站之外,还有一些口碑一直不错的高校OJ系统有兴趣的也可以看一看。
地址:http://poj.org/problemlist
地址:http://acm.ustc.edu.cn/ustcoj/
地址:https://acm.hdu.edu.cn/
地址:http://acm.hit.edu.cn/ |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 22:45:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |