
编程算法学习
文章平均质量分 59
星星的月亮叫太阳
这个作者很懒,什么都没留下…
展开
-
DP求解最短路径
设 s s1 s2 s3 t 是 s 到 t 的最短路径,且 s s1 之间的最短路径已经求出,则 s1 到 t 的最短路径是 s1 s2 s3 t ,如果不是,那么存在一条 s1 r2 r3 t 这样的最短路径。这是最后一个阶段的决策,它依赖于d(1,9)、d(2,9)和d(3,9)的计算结果。这一阶段的决策又依赖于d(4,9)、d(5,9)和d(6,9)的计算结果。这一阶段的决策依赖于d(7,9)和d(8,9)的计算。代码实现 (增加注释)原创 2023-09-05 18:59:59 · 323 阅读 · 0 评论 -
Kdtree
kdtree 就是在 n 维空间对数据点进行二分;具体先确定一个根,然后小于在这个维度上的根的节点在左边,大于的在右边,再进行下一个维度的划分。直到维度结束,再重复,或者直到达到了结束条件:例如输入的点的个数小于叶子节点最大点个数 到达了最大深度。将点云数据传入kdtree , 即将点云数据构建成kdtree的结构形式。直接在上面就可以调用函数进行 任意点 任意半径 任意k个点 的最近搜索了。原创 2023-08-28 11:41:51 · 121 阅读 · 0 评论 -
Bresenham 贝汉明算法
计算下 1 和 2 距离开始节点的 x 向 和 y 向的距离 xd 和 yd 占起止点之间在 x y 向的距离的百分比 x% y%;注意更新 x% , 也就是 x% 变为了 新的当前节点到开始节点 x 向的距离占起止节点之间 x 向的距离的百分比了。假如 x% < y% 那么下一个栅格就是 当前节点的 x 加 1 或者 -1;我们首先找到当前栅格的下一个 x 和 y 方向的栅格 1 和 2;理解:给定两个点,画出两个点的连线经过的栅格。TARE 里面有类似的实现代码。原创 2023-08-28 11:41:04 · 322 阅读 · 0 评论 -
动态规划算法
为减少重复计算,对每一个子问题只解一次,将其不同阶段的不同状态保存在一个二维数组中。与分治法最大的差别是:适合于用动态规划法求解的问题,经分解后得到的子问题。一个决策序列就是在变化的状态中产生的,所以这种多阶段最优化决策解决问题的过程就是动态规划(DP)。将求解的问题分解成若干子问题。然后按顺序求解子问题,前一问题的解会为后一问题的求解提供信息。的(即下一个子阶段的求解是建立在上一个子阶段的解的基础上,进行进一步的求解)。问题的阶段、每个阶段的状态、前一个阶段到后一个阶段之间的递推关系。原创 2023-08-28 11:30:31 · 102 阅读 · 0 评论