随笔分类 - 算法
摘要:算法:给定一个包含 m x n 个元素的矩阵(即:m行n列的矩阵),按照螺旋顺序打印出矩阵中的所有元素。 示例:给定如下矩阵 [1, 2, 3] [4, 5, 6] [7, 8, 9] 则最终打印出的顺序为:1, 2, 3, 6, 9, 8, 7, 4, 5 1 --[[ 2 给定一个包含 m x
阅读全文
摘要:概要 数据结构中,树是相对较为复杂的一种数据结构,但也尤其重要,特别是二叉树。该文主要记录二叉树的几种遍历:前序遍历、中序遍历、后序遍历以及层序遍历。介绍各种遍历方式前,先要明确二叉树是:树上的任何一个节点,最多只可能有1个父节点(当然也有无父节点的 即:根节点),同时也最多只有2个子节点(这两个子
阅读全文
摘要:描述 根据已经知的二叉树的前序序列以及中序序列,复原出相应的二叉树。 思路 根据二树的前序序列以及中序序列特点进行还原。前序序列首节点必为树的根节点,因此,在中序序列中查找定位到对应的根节点的位置。则位于中序序列中根节点所在位置的左侧节点全为树根节点的左子树上的节点;位于中序序列中根节点所在位置的右
阅读全文
摘要:问题描述 给定一字符串数组 szText,将其中的所有空格替换为 "%20" 字符串。(注:szText 数组后面拥有足够长的额外空余空间) 解题 思路一 该问题最最普通的解法就是从前往后逐一扫描,遇到某位置Pos处的字符为空格时,将 Pos 之后的所有字符全部分别向后面移动2格。直至将整串数组的有
阅读全文
摘要:特别说明: 对于算法,重在理解其思想、解决问题的方法,思路。因此,以下内容全都假定待排序序列的存储结构为:顺序存储结构。 归并排序算法介绍 归并排序算法主要是将两个有序的序列合并成一个更大些的有序序列。因此归并排序算法要有个归并操作(这也是其核心操作)。归并操作,总是将两个相邻的有序序列进行合并,直
阅读全文
摘要:特别说明: 对于算法,重在理解其思想、解决问题的方法,思路。因此,以下内容全都假定待排序序列的存储结构为:顺序存储结构。 快速排序介绍 快速排序算法相较于插入、冒泡、选择排序来说而言要稍微复杂些。其主要用的是分治思想,将问题划分为更小的子问题来解决。因此,快速排序的思想其实很简单。在(目前的)时间复
阅读全文
摘要:特别说明: 对于算法,重在理解其思想、解决问题的方法,思路。因此,以下内容全都假定待排序序列的存储结构为:顺序存储结构。 冒泡排序思想 冒泡排序与插入排序、简单选择排序一样,都是比较简单的一类排序算法。假设待排序序列为 ,则冒泡排序算法思想如下: 01.设置 = - 1 (注:0 - 1, 用于标记
阅读全文
摘要:特别说明: 对于算法,重在理解其思想、解决问题的方法,思路。因此,以下内容全都假定待排序序列的存储结构为:顺序存储结构。 完全二叉树概要 完全二叉树的定义,不知道者请自行查阅相关书籍。由完全二叉树的性质可知,树的高度也就 ,即:从根节点到达任何叶子节点的时间复杂度最多也就 ,完全二叉树的存储结构有多
阅读全文
摘要:特别说明 对于算法,重在理解其思想、解决问题的方法,思路。因此,以下内容全都假定待排序序列的存储结构为:顺序存储结构。 选择排序思想 选择排序又称为简单选择排序,主要思想描述如下: 01.假设待排序列表为 。选择排序将 划分为由已排序好序的 部分 以及 未排序的 部分; 注意:刚开始时 部分其实可认
阅读全文
摘要:特别说明: 对于算法,重在理解其思想、解决问题的方法,思路。因此,以下内容全都假定待排序序列的存储结构为:顺序存储结构。 希尔排序算法摘要: 希尔排序又称为“缩小增量排序”。直接插入排序算法在效率上虽说没办法突破 ,但其在少量数据或待排序列基本有序的情况下,效率却是非常高效的。因此,为进一步提高排序
阅读全文
摘要:特别说明: 对于算法,重在理解其思想、解决问题的方法,思路。因此,以下内容全都假定待排序序列的存储结构为:顺序存储结构。 一:插入排序算法思想 01.设待排序序列为 。插入排序将 划分为由已排序好序的 部分 以及 未排序的 部分组成; 注意:刚开始时 部分其实可认为只有一个元素,即: 元素 02.排
阅读全文
摘要:一:概述 在实际中,经常需要用到字符串的模式匹配处理。即在指定文本串中定位指定的模式串,统计所有与模式串的偏移位置情况。而解决该问题的算法也有许多种,最为普通的算法莫过于“朴素匹配算法”。如果构成字符串的有限字符集全为数字类型的字符,则还可以考虑R-K匹配算法(即:Rabin & Karp提出的匹配
阅读全文
摘要:A*算法思想容易理解,但要想设计出好的A*算法,则必需要全面深入了解它。在本文章中接下来的内容中,将全面深入探讨该话题。如果对该算法还没有理解的话,则请先查阅上篇文章《A*算法入门》,然后再看该文章。 一:理论篇 探讨:估值函数 A*算法之所以效率高是因为它是启发式的搜索算法。它是在Dijkstra
阅读全文
摘要:一:概述 A*算法在游戏中应用是十分广泛的,许许多多的游戏在寻路方面都会考虑使用该算法(当然除该算法外,前辈们也想出很多其他办法),它是一种启发式的寻路搜索算法。今天这边重点全面分析探讨A*算法。 二:术语 此处对接下来将要讨论的内容中的相关术语约定如下: start-node :起始节点。即:用户
阅读全文
摘要:在项目开发中,有时需要用到随机数生成器。用Win自带的接口或项目所依赖的底层模块(如:cocos2d-x引擎中的CC_RANDOM_0_1之类的)的确也能生成相应的随机数。但它们有一定的局限性。Win自带的API不支持跨平台,cocos2d-x引擎支持的随机数服务端就“没办法用”(其实用是可以用,但
阅读全文