贵州做网站公司
贵州做网站公司~专业!靠谱!
10年网站模板开发经验,熟悉国内外开源网站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等网站程序,可为您提供网站建设,网站克隆,仿站,网页设计,网站制作,网站推广优化等服务。我们专注高端营销型网站,企业官网,集团官网,自适应网站,手机网站,网络营销,网站优化,网站服务器环境搭建以及托管运维等。为客户提供一站式网站解决方案!!!

介绍几个可视化数据结构和算法的网站

来源:网络转载 时间:2024-01-29 07:54:22

大二开始学习数据结构,老师的讲课方式就是PPT照本宣科,讲解算法就是把代码的部分贴出来一行一行细讲......基本每节课除了只知道老师讲了什么内容,内容的思想我可以说是0%吸收,于是我便打算自学。

自学的路上我走了不少坑,比如通过看自学书的代码来弄懂算法思想,结果发现是本末倒置。学到现在,我感觉数据结构大体分为两个部分:概念阐述和算法实现,相比概念,算法实现的学习最后必须依靠线上,所花的时间成本也远大于概念学习,我觉得像老师那样把代码放在幻灯片上细讲的做法纯粹在浪费时间。因为放映的都是某部分功能而不是整套算法,学的时候很难把眼前算法里的一些变量跟最上面的typedef的各种属性联系起来,再联系到结构图例以弄清楚是讲了什么,课上先讲的ADT在脑子里记不住,老师就就跳转到算法上去了,最后导致尽管看懂了概念,看代码却依然如天书一般,看不到最后的输出(既背后的数据结构整个操作的过程)。

基于“所想的事物肯定都有人实践过了”的想法,我便搜索了一番。目前找到了四个网页:

前三个已经被各路大佬介绍了无数遍了,但基本都是对网站的简单介绍,我想把自己的实践也记录下来:

(一)Visualgo  https://visualgo.net/en

这估计是最为知名可视化网站了,也是我第一个找到的网站,可以自己绘制图结构,但是右边的代码执行过程,我这个只会C和Javascript的菜鸟看的一脸懵逼。

此外这个网站有部分算法并未收录,比如Floyd的最短路径算法(Floyd-Warshall's Shortest Path)和拓补排序(topological sort)算法就没有。

 

(二)Algorithm Visualizer https://algorithm-visualizer.org/

  一个Github项目,算法演示代码为Javascript,可以修改代码来改图结构(话说这存储图结构用的都是领接矩阵),但似乎有bug,记得我有一次改prim算法的图运行时动画就不动了,只好改回默认图。

  图的点可以拖动,但是运行的时候一把步骤往回拖图又会变成默认的样子,很烦。

  另外可视化的效果也不怎么样,比如这个Dijkstra的算法和Visualgo的一对比。。。一个什么都没有,一个还能把点的占有关系显示出来

(三) Data Structure Visualizationshttps://www.cs.usfca.edu/~galles/visualization/Algorithms.html

旧金山大学开发的,从名字就知道主要是讲数据结构,对现在还在学数据结构的我是最适合不过了,不过算法操作过程是用矢量图演示的,图结构随机生成,没法自己设定,也没有实例代码,但是看算法的操作过程够用了。

(话说它这Dijkstra的算法是从开始点到所有点的,而我学习的是单点对单点)

(四)pythontutor http://pythontutor.com/

《算法图解》作者实例代码库(https://github.com/egonschiele/grokking_algorithms)的附加推荐!,支持把C,Java,Python,Ruby等代码的调试过程可视化,对我这个常苦于代码调试看不到直观的链表或者数组图的小白可是很大的帮助。

运行模式分两种,静态编译(Visualize Execution)和动态编译(Live Programming Mode),区别在于能不能在演示途中修改代码和改变图形显示设置。

不过各种代码有自身的运行限制,详细见文档讲述。。

工具介绍就是这些,至于使用和优点比较大家看各自的情况选取发挥。对我来讲最好不过就是能看到自己写的代码背后数据的操作过程了,今年还有名为hedis的大佬发布了一个名为data visualizer的vscode插件(https://github.com/hediet/vscode-debug-visualizer),可是涉及的知识要求并不是我能够掌握的。。。。

另外附Dijkstra算法的python实现如下:

from json import dumpsgraph = {'start': {'a': 6, 'b': 2}, 'a': {    'fin': 1}, 'b': {'a': 3, 'fin': 5}, 'fin': {}}# graph["start"] = {}# graph["start"]["a"] = 6# graph["start"]["b"] = 2# print (graph["start"])# graph["a"] = {}# graph["a"]["fin"]=1# graph["b"] = {}# graph["b"]["a"]=3# graph["b"]["fin"]=5# graph["fin"] = {}# print(graph)infinity = float("inf")costs = {}costs = {"a": 6, "b": 2, "fin": infinity}print(costs)parents = {"a": "start", "b": "start", "fin": None}processed = []json_graph = dumps(graph)def find_lowest_cost_node(costs):    lowest_cost = float("inf")    lowest_cost_node = None    for node in costs:        cost = costs[node]        if cost < lowest_cost and node not in processed:            lowest_cost = cost            lowest_cost_node = node    return lowest_cost_nodenode = find_lowest_cost_node(costs)while node is not None:    cost = costs[node]    neighbors = graph[node]    for n in neighbors.keys():        new_cost = cost + neighbors[n]        if costs[n] > new_cost:            costs[n] = new_cost            parents[n] = node    processed.append(node)    node = find_lowest_cost_node(costs)print("Cost from the start to each node:")print(costs)

pixellab使用教程?使用pixellab的教程如下:1。点击手机上的pixellab点击应用图标打开应用;2。单击文本框以编辑要写入的文本;3。单击右上角的按钮导入图片作为背景;4。点击“贴纸”选择您要添加的图片,这是更有趣的;5。单击主页上的分号按钮添加更多著名的单词和句子;6。图片处理完成后,可以与更多用户共享,最后保存编辑,下次可以继续修改。什么系列的三星手机更好些?中国有句古话,每分...

哔哩哔哩B站怎么查看视频同时在线观看人数?在浏览器中找到BiliBili的官网,如图所示,点击进入官网;然后我们可以随机找到一段视频,点击观看;然后在视频的左下角可以看到在线观看人数和实时播放总量。扩展信息:BiliBili(BiliBili,也称为station B)是2009年6月推出的与ACG相关的弹幕视频共享网站。其前身mikufans于2018年3月在纳斯达克上市。它的特点是视频上方的实...

QQ站点的域名是?腾讯的主页是QQ主页首页使用的Http协议,即超文本传输协议。有什么办法可以把黄钻标识弄掉?第一步,先把QQ空间名字的颜色改一下。将鼠标移动到主页的名称上,会显示一个蓝色框。单击编辑。改变颜色以匹配巢中的颜色。这使得该地址“不可见”。第二步是更改您自己的空间名称,空间名称,并粘贴在那里的括号中。第三步,覆盖黄色菱形标志。此时空间名已经到了第二行,黄色菱形符号和空间地址(个人域名)...

很多企业都想做网站,但是怎么样做、如何做、从哪里开始都很困惑。今天格特瑞专业企业网站开发团队给大家说一下企业网站建设怎么样去做。1.网站定位建站跟写文章一样,首先要利好文章的主题和中心,企业网站建设的第一步——网站定位,这是决定整个网站关键性的一步。定位不能脱离自身,企业要做是什么类型的网站?目标消费人群是谁?这些都是前期网站建设要明确的内容。只有先把定位做好了才能开始后面的内容,没有定位就没有后...

适合使用香港服务器的网站有:1、外贸电商网站,香港服务器硬件配置比较高,线路和带宽资源充足,能满足外贸电商网站的需求;2、游戏服务端,香港大带宽服务器性价比高,很适合游戏服务端使用;3、SEO站群建设,香港机房提供高配多IP服务器,且带宽充足,能应对SEO站群建设高并发的需求;4、个人网站搭建,香港服务器提供CN2-GIA线路直连,且支持配置...

网站优化是个技能活哈,不是谁想能做就能做的,要是不了解这个职业所需求触及的常识,是 很难将 网站优化做好的。今天 网站优化 龙哥就带大家一起来了解下吧,希望可以为大家带...

TOP