<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      介紹幾個可視化數據結構和算法的網站

      大二開始學習數據結構,老師的講課方式就是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 Visualizations https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

      舊金山大學開發的,從名字就知道主要是講數據結構,對現在還在學數據結構的我是最適合不過了,不過算法操作過程是用矢量圖演示的,圖結構隨機生成,沒法自己設定,也沒有實例代碼,但是看算法的操作過程夠用了。

      (話說它這Dijkstra的算法是從開始點到所有點的,而我學習的是單點對單點)

       

       

       

       

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

      《算法圖解》作者實例代碼庫(https://github.com/egonschiele/grokking_algorithms)的附加推薦!,支持把C,Java,Python,Ruby等代碼的調試過程可視化,對我這個??嘤诖a調試看不到直觀的鏈表或者數組圖的小白可是很大的幫助。

      運行模式分兩種,靜態編譯(Visualize Execution)和動態編譯(Live Programming Mode),區別在于能不能在演示途中修改代碼和改變圖形顯示設置。

      不過各種代碼有自身的運行限制,詳細見文檔講述。。

       

       

       

      工具介紹就是這些,至于使用和優點比較大家看各自的情況選取發揮。對我來講最好不過就是能看到自己寫的代碼背后數據的操作過程了,今年還有名為hedis的大佬發布了一個名為data visualizer的vscode插件(https://github.com/hediet/vscode-debug-visualizer),可是涉及的知識要求并不是我能夠掌握的。。。。

       

       

      另外附Dijkstra算法的python實現如下:

      from json import dumps
      graph = {'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_node
      
      
      node = 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)

       

      posted @ 2020-11-22 11:59  另一種開始  閱讀(1803)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产片AV国语在线观看手机版| 日本一区二区三区视频版| 国产精品一线二线三线区| 中文字幕午夜福利片午夜福利片97| 成人性无码专区免费视频| 麻豆成人av不卡一二三区| 无码AV中文字幕久久专区| 欧美午夜成人片在线观看| 久久中文字幕国产精品| 久久精品国产亚洲AⅤ无码| 国产精品天干天干综合网| 男女做aj视频免费的网站| 18国产午夜福利一二区| 国产精品激情av在线播放| 国产综合久久久久鬼色| av天堂午夜精品一区| 国产日韩乱码精品一区二区| 亚洲欧洲精品一区二区| 宁波市| 98日韩精品人妻一二区| 日韩女同在线二区三区| 成人性能视频在线| 亚洲日韩乱码中文无码蜜桃| 欧美人禽杂交狂配| 91色老久久精品偷偷性色| 男女性杂交内射女bbwxz| 国产激情一区二区三区不卡| 欧美一区二区三区性视频| 亚洲精品乱码久久久久久蜜桃图片 | 国产高清自产拍av在线| 丰满岳乱妇久久久| 日韩丝袜人妻中文字幕| caoporn免费视频公开| 亚洲精品一区二区天堂| 黄网站色视频免费观看| 亚洲第一国产综合| 国产精品内射在线免费看| 日韩永久永久永久黄色大片| 国产成人无码性教育视频| 丁香五月亚洲综合在线国内自拍| 国产一区二区三区黄色大片|