摘要:并发的基本概念 代码示例:
阅读全文
|
随笔分类 - 数据结构与典型算法
摘要:二分查找法实际上是不断地将有序数据进行对半分割,并检查每个分区的中间元素。再重复 根据中间数确定目标范围并递归实行对半分割,直到中间数等于待查找的值或是目标数不在 搜索范围之内! 代码实现: 适配版:
阅读全文
摘要:分治思想,采用递归实现,代码如下: 归并排序的时间复杂度: n乘以log以2为底的n.
阅读全文
摘要:关键实现:(体会递归与或语句的用法,以及局部静态变量的处理)
阅读全文
摘要:动态规划算法 这里存在很多重复的计算,很low 剪绳问题:
阅读全文
摘要:递归和分治是两个不同维度的概念。递归是程序调用自身;分治是一种算法,将问题拆解成若干规模较小 ,相互独立,与原问题形式相同的子问题,当解决子问题后合并子问题的解得到原始问题的解。 分治可以但不只可以用递归实现,且递归也可以用来实现其他算法。 分治算法案例:二分查找
阅读全文
摘要:同时根据每条边的实际情况,采用权重来表示他们的不同,权重可以是负的。 往这个图中添加顶点的成本非常昂贵,因为新的矩阵结果必须重新按照新的行/列创建,然后将已有的数据复制 到新的矩阵中。 图的数据结构: 图的企业级应用案例 AI游戏中的自动寻路 A*算法 H就是大体方向距离, G就是就近路径长度。 此
阅读全文
摘要:二叉树 二叉搜索树的算法实现 //typedef struct..{...} Bnode; //typedef struct..{...}* Btree; 为什么有了二叉搜索树还要提出红黑树: 红黑树可以规避二叉搜索树的长短腿问题。
阅读全文
摘要:堆是最有个性的树!它是用数组表示的树 如何在数组中快速创建堆 堆的数据结构的定义: #define DEFAULT_CAPCITY 128 typedef struct _Heap{ int *arr; //存储堆元素的数组 int size; //当前已存储的元素个数 int capacity;
阅读全文
|