
算法学习笔记
古月河图
天之道,不争而善胜,不言而善应,不召而自来,繟然而善谋。
展开
-
算法学习笔记:约瑟夫问题
文章目录约瑟夫问题问题简化代码 约瑟夫问题 据说著名犹太历史学家 Josephus有过以下的故事: 在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。 然而Josephus 和他的朋友...原创 2020-03-24 16:17:32 · 344 阅读 · 0 评论 -
算法学习笔记:递归
概念递归其实就是一种函数调用函数本身的编程方式,他的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。有种说法我觉得很好,所谓递归,就是利用大道至简的思想,把一个大的复杂的问题层层转换为一个小的和原问题相似的问题来求解的这样一种策略。优点递归给人的感觉是惊艳,它往往能给我们带来非常简洁非常直观的代码形势,从而使我们的编码大大简化。缺点效率往往很低,费时和费内存空间。在递归原创 2019-04-28 00:35:15 · 860 阅读 · 0 评论 -
算法学习笔记:排序
今天整理几种比较喜欢的排序算法: bubble sort quick sort merge sort heap sort selection sort insertion sort原创 2015-12-20 06:21:11 · 717 阅读 · 0 评论 -
算法学习笔记:回溯
回溯 从问题的某一种可能出发, 搜索从这种情况出发所能达到的所有可能, 当这一条路走到” 尽头 “的时候, 再倒回出发点, 从另一个可能出发, 继续搜索. 这种不断” 回溯 “寻找解的方法, 称作” 回溯法 “。 回溯是一种算法思想,可以用递归实现。 通俗点讲回溯就是一种试探,类似于穷举,但回溯有“剪枝”功能,比如求和问题。给定7个数字,1 2 3 4 5 6 7求和等于7的组合,从小到大搜索,...原创 2019-04-29 21:20:39 · 228 阅读 · 0 评论 -
算法学习笔记:随机迷宫
随机迷宫 迷宫生成算法也有很多种,也正是由于结果随机,反过来讲就意味着该问题由无数种解,所以它完全可以利用回溯的思想。 常见算法由三种: 十字分割法 随机prim算法 深度优先算法 十字分割法 先画一个十字分成四个部分 在三面墙上打洞 再在每个子部分中重复这一步骤,直至空间不够分割(这个值需要我们自行设置) 十字分割法生成的迷宫会形成一个一个大小不一的房间,适合制作RPG游戏地图。 ...原创 2019-04-29 22:45:39 · 564 阅读 · 0 评论