摘要: union-find 各种算法的实现,$N$ 为结点数。 | 算法 | connect() | find() | | | | | | quick-find | $N$ | $1$ | | quick-union | 树的高度(最好时 $1$,最坏时 $N$) | 树的高度 | | weighted- 阅读全文
posted @ 2022-10-28 11:36 Violeshnv 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 二分查找 不同的二分查找 用递归实现的二分查找 static int BinarySearch<T>(IList<T> list, T target) where T : IComparable<T> { return BinarySearch(list, 0, list.Count - 1, ta 阅读全文
posted @ 2022-10-28 11:30 Violeshnv 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 单链表 template <typename T> class LinkedList { typedef LinkedList self; typedef T value_type; class Node { friend LinkedList; public: template <typename 阅读全文
posted @ 2022-10-28 11:30 Violeshnv 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 压缩算法 不存在能够压缩任意比特流的算法 归谬法论证:如果该算法存在,由于比特流为离散值,压缩后的比特流至少比原比特流少一个比特,最终可以是任意小的,这显然是荒谬的 小规模字母表 ASCII 字符由 7 位表示,如果所使用的字符种类不足 65 种就可以用少于 7 位的比特记录每个字符,只需要添加一个 阅读全文
posted @ 2022-10-28 11:28 Violeshnv 阅读(119) 评论(0) 推荐(0) 编辑
摘要: Graph 引 ​ 在线性表中,数据结构是被串起来的,仅有线性关系,每个数据结构只有一个前驱和一个后继,而在树形结构中数据元素之间有明显的层次关系,并且每一层上的数据元素可能和下一层中的多个元素相关,但只和上一层中的一个元素相关。 ​ 在许多计算机应用中情况可能会变得更加复杂,由相连的节点所表示的模 阅读全文
posted @ 2022-10-28 11:25 Violeshnv 阅读(33) 评论(0) 推荐(0) 编辑
摘要: Hash 我们使用一个下标范围比较大的数组来存储元素。可以设计一个函数(哈希函数,也叫做散列函数),使得每个元素的关键字都与一个函数值(即数组下标)相对应,于是用这个数组单元来存储这个元素;也可以简单的理解为,按照关键字为每一个元素"分类",然后将这个元素存储在相应"类"所对应的地方。但是,不能够保 阅读全文
posted @ 2022-10-28 11:23 Violeshnv 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 查找算法 顺序查找 最简单形式的顺序查找 public static int LinearSearch<T>(IList<T> list, T target) { for (int i = 0, count = list.Count; i != count; ++i) // 一次比较 i and c 阅读全文
posted @ 2022-10-28 11:22 Violeshnv 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 算法基础 分析算法 循环不变式 设计算法 分治法 练习 线性查找的平均检查次数 最好 1 次,最坏 n 次,平均 $\frac{n+1}{2}$ 次,$f(n) = \Theta(n)$。 使任何算法的最好情况运行时间提高的办法 将最好情况总结,并作为算法的特例实现。但是不应该将函数的最好情况作为判 阅读全文
posted @ 2022-10-27 20:46 Violeshnv 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 算法要求 正确性(Correctness) 语法正确 输入输出(IO)正确 可读性(Readability) 使用注释(不注释比坏注释好,代码易读比过多注释好) 命名契合(camelCase、PascalCase、UnderScoreCase) 健壮性(Robustness) 完善的异常处理(处理非 阅读全文
posted @ 2022-10-27 20:33 Violeshnv 阅读(20) 评论(0) 推荐(0) 编辑
摘要: Linear 数组概述 数组有四种操作:添加、删除、更改和搜索。 读取是数组中最容易、最快的操作,因为数组以顺序的方式存储在内存中。 数组最突出的能力叫做随机读取,即通过一个下标读取值。 int a[] = {3, 1, 2, 5, 4, 9, 2, 7}; printf("%d", a[3]); 阅读全文
posted @ 2022-10-27 20:28 Violeshnv 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 递归 递归是栈的应用之一 举一个斐波那契数列的例子 int Fbi(unsigned i) { if (i < 2) return i; return Fbi(i - 1) + Fbi(i - 2); } 我们把一个直接调用自己或通过一系列的调用语句间接地调用自己的函数,称作递归函数 在高级语言中, 阅读全文
posted @ 2022-10-27 20:26 Violeshnv 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 工具准备和附件购买 Linux 系统的电脑(可以是虚拟机):根目录 10G 左右空间,用户目录 40G 左右的空间,会在上面安装 SDK Manager 来对 Jetson Nano 进行刷机和安装 SDK。 屏幕:支持 HDMI 连接,屏幕使用 HDMI 接 HD IN 和 micro USB 小 阅读全文
posted @ 2022-10-27 15:55 Violeshnv 阅读(445) 评论(0) 推荐(0) 编辑
摘要: Python注释 Python注释可以分为块注释和行内注释、文档注释、类型注释 块注释和行内注释 # 块注释一般用于描述下方代码 if a > 10 : # 按照PEP8规范,块注释以一个#和一个空格开头,除非块注释中需要使用缩进 a = 10 else: # 块注释应该和它要注释的代码具有同样的缩 阅读全文
posted @ 2022-10-27 15:42 Violeshnv 阅读(90) 评论(0) 推荐(0) 编辑
摘要: GameTheory 概述 等边际原理:最优的资源配置必须资源在每种用途上的边际贡献都需相等 羊群效应:大家做什么,自己也跟着做什么,不管对错 社会的基本问题:协调问题、合作问题 协调问题的核心是人们如何预测他人的行为,最直接的办法是沟通和交流,需要行为规范的知识、对对方特性的知识,甚至对方如何看待 阅读全文
posted @ 2022-10-27 15:30 Violeshnv 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 意志力的本质 前额皮质分成三个区域,掌控“我要做”、“我不要”和“我想要” 两个自我:原始本能和自控系统 意志力的前提:自我意识,认识你自己,考虑每一个决定 训练方法 冥想,控制走神 深呼吸 锻炼 充分睡眠 明智地使用自控力 锻炼自控力 自我记录 选择更难的一些小事 三思而后行 应激反应和三思而后行 阅读全文
posted @ 2022-10-27 15:29 Violeshnv 阅读(60) 评论(0) 推荐(0) 编辑