zoukankan      html  css  js  c++  java
  • 算法、数据结构可视化

    算法、数据结构可视化

    一、总结

    一句话总结:

     比如算法,数据结构,很多都有可视化,学习要知道用可视化更好的学习

    1. 可视化数据结构:http://www.cs.usfca.edu/~galles/visualization/Algorithms.html

    2. C++实现的各种算法演示:http://people.cs.pitt.edu/~kirk/cs1501/animations/

    3. 很酷的各种排序演示:http://sorting.at/

    4. 很有创意的排序比较(匈牙利 Sapientia 大学的 6 种排序算法舞蹈视频):http://top.jobbole.com/1539/

    二、内容在总结中

    1. 可视化数据结构:http://www.cs.usfca.edu/~galles/visualization/Algorithms.html

    2. C++实现的各种算法演示:http://people.cs.pitt.edu/~kirk/cs1501/animations/

    3. 很酷的各种排序演示:http://sorting.at/

    4. 很有创意的排序比较(匈牙利 Sapientia 大学的 6 种排序算法舞蹈视频):http://top.jobbole.com/1539/

    三、不错的可视化算法示例(转)

    转自:不错的可视化算法示例
    https://blog.csdn.net/huanglong8/article/details/55188649

    版权声明:你可以刺绣,你可以编程,也请分享你的绣品和程序.。转载文章请注明原文出处,你我皆在努力。 https://blog.csdn.net/huanglong8/article/details/55188649
     

    不错的可视化算法示例

    在逛IT论坛时,有发现一些介绍算法的可视化示例站点,觉的真心不错,不光是排序,包括图数,甚至有的关于GIS分析的,所以,也save一下,难免以后会用到,多多学习,多多分享。

    先介绍一个比较全面的可视化算法站点,这里包括算法的简要思想逻辑,虽然不是纯C代码,但一样有用。

    https://visualgo.net/

    这个算法站点包含诸多内容,诸多的变体,还是很值得学习的。
    这里写图片描述
    其中包括:

    • Sorting 排序算法。有很多方式枚举)
    • Bitmask 位掩码。学习网络的话,可以看看。
    • Linked List 链表。包括增删改等等。
    • Hash Table 哈希表。觉得快速查找存储会有帮助。
    • Binary Heap 二叉堆。同样为了遍历快速的一种方式。
    • Binary Search Tree 二叉搜索树。这个我学过。
    • Graph Structures 图结构。
    • Union-Find DS 并查集。
    • Segment Tree 线段树。
    • Fenwick Tree 树状数组。
    • Recursion Tree/DAG 递归树…。
    • Graph Traversal 图的遍历
    • Min Spanning Tree 最小生成树
    • SS Shortest Paths 最短路径
    • Network Flow 网络流
    • Graph Matching 图形匹配
    • Cycle Finding 环查找
    • Suffix Tree 后缀树
    • Suffix Array 后缀数组
    • Geometry (Polygon) 图形多边形
    • Convex Hull 凸包
      这个站点后续还在更新。

    https://www.toptal.com/developers/sorting-algorithms

    这个也是,不过类型风格不太喜欢,不过也很有帮助,主要是一堆排序算法,包括各种C , JAVA, PYTHON的源代码。
    这里写图片描述

    https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

    相当霸气的站点,有用户参数,可随意自定义随机函数。
    这里写图片描述

    目前,我们有以下数据结构和算法的可视化:

    • 基本
      • 堆栈:数组实现
      • 堆栈:链表实现
      • 队列:数组实现
      • 队列:链表实现
      • 列表:数组实现(可在java版本中使用)
      • 列表:链接列表实现(在java版本中可用)
    • 递归
      • 阶乘
      • 反转字符串
      • N皇后问题
    • 索引
      • 二进制和线性搜索(排序列表)
      • 二进制搜索树
      • AVL树(平衡二叉搜索树)
      • 红黑树
      • 张开树
      • 打开哈希表(闭合寻址)
      • 闭合哈希表(开放寻址)
      • Closed哈希表,使用桶
      • Trie(前缀树,26-ary树)
      • 基树(紧凑型)
      • 三元搜索树(Trie with BST of children)
      • B树
      • B +树
    • 排序
      • 比较排序
        • 气泡排序
        • 选择排序
        • 插入排序
        • 壳牌排序
        • 合并排序
        • Quck排序
      • 桶排序
      • 计数排序
      • 基数排序
      • 堆排序
    • 堆状数据结构
      • 二项式队列
      • 斐波纳契堆
      • 左派堆
      • 倾斜堆
    • 图算法
      • 广度优先搜索
      • 深度优先搜索
      • 连接组件
      • Dijkstra的最短路径
      • Prim的最低成本生成树
      • 拓扑排序(使用Indegree数组)
      • 拓扑排序(使用DFS)
      • Floyd-Warshall(所有对最短路径)
      • Kruskal最小成本生成树算法
    • 动态编程
      • 计算第n个斐波纳契数
      • 改变
      • 最长公共子序列
    • 几何算法
      • 2D旋转和比例矩阵
      • 2D旋转和平移矩阵
      • 2D更改坐标系
      • 3D旋转和缩放矩阵
      • 3D改变坐标系
    • 其他 …
      • 不相交集
      • Huffman编码(在java版本中可用)

    http://sorting.at/

    这个也是主要讲排序的,看的挺黑科技的。。。
    这里写图片描述

    https://illustrated-algorithms.now.sh/

    这个站点的可视化很少,应该是才开始做,目前只有二分,快排,BFS的,可视化比较卡哇伊一点。。。
    这里写图片描述

    http://people.cs.pitt.edu/~kirk/cs1501/animations/

    这个站点貌似挺慢的,运行了一个说需要java环境,大家可以自己研究下。
    这里写图片描述

    https://bost.ocks.org/mike/algorithms/

    这是一个个人博客,里面着重讲算法(采样,随机乱序,排序,迷宫)的意义及优劣点,逐步深入,作者讲的很细,对这方面的有需求的朋友,一定要读读这篇文章,帮助很大。
    这里写图片描述
    此人博客也关注下,我也是从hacker news上翻到的。

    如果哪位朋友有更好的可以留言,大家一同分享。

     
  • 相关阅读:
    44.分治算法练习:  一元三次方程求解
    44.分治算法练习:  一元三次方程求解
    44.分治算法练习:  一元三次方程求解
    MVC-04 视图(1)
    MVC-03 控制器(5)
    MVC-03 控制器(4)
    MVC-03 控制器(3)
    MVC-03 控制器(2)
    MVC-03 控制器(1)
    MVC-02 路由
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/10951936.html
Copyright © 2011-2022 走看看