随笔分类 -  数据结构与算法

摘要:一个简单的小算法来获取两个数的最大公约数, 阅读全文
posted @ 2017-01-05 15:20 我所向往的美好 阅读(1893) 评论(0) 推荐(0)
摘要:Java实现迷宫算法,回溯算法的递归实现,代码简单 阅读全文
posted @ 2016-11-13 21:21 我所向往的美好 阅读(3724) 评论(0) 推荐(0)
摘要:特殊矩阵 特殊矩阵是指这样一类矩阵,其中有许多值相同的元素或有许多零元素,且值相同的元素或零元素的分布有一定规律。一般采用二维数组来存储矩阵元素。但是,对于特殊矩阵,可以通过找出矩阵中所有值相同元素的数学映射公式,只存储相同元素的一个副本,从而达到压缩存储数据量的目的。 特殊矩阵的压缩存储 只存储相 阅读全文
posted @ 2016-11-13 21:06 我所向往的美好 阅读(2315) 评论(0) 推荐(0)
摘要:直接接上篇上代码: // 阅读全文
posted @ 2016-11-13 20:50 我所向往的美好 阅读(846) 评论(0) 推荐(0)
摘要:本文主要的思路都是参考http://kb.cnblogs.com/page/176818/ 如有冒犯请告知,多谢。 一、KMP算法 KMP算法可以在O(n+m)的时间数量级上完成串的模式匹配操作,其基本思想是:每当匹配过程中出现字符串比较不等时,不需回溯指针,而是利用已经得到的“部分匹配”结果将模式 阅读全文
posted @ 2016-11-13 20:22 我所向往的美好 阅读(3963) 评论(0) 推荐(1)
摘要:模式匹配 在字符串匹配问题中,我们期待察看源串 “ S串 ” 中是否含有目标串 “ 串T ” (也叫模式串)。其中 串S被称为主串,串T被称为子串。 1、如果在主串中查找到子串,则称为模式匹配成功,返回模式串的第一个字符在主串中出现的位置。 2、如果在主串中未找到子串,则称为模式匹配失败,返回-1。 阅读全文
posted @ 2016-10-30 17:31 我所向往的美好 阅读(6599) 评论(0) 推荐(0)
摘要:一、Java_Collections表的实现 与c不同Java已经实现并封装了现成的表数据结构,顺序表以及链表。 1、ArrayList是基于数组的实现,因此具有的特点是:1.有索引值方便查找,对于get和set操作花费常数时间,2.但是其缺点是:插入/删除某个数据的代价比较大。 2、LinkedL 阅读全文
posted @ 2016-10-29 10:49 我所向往的美好 阅读(793) 评论(0) 推荐(0)
摘要:Java数据结构之 Queue队列 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在其一端进行插入操作在其另一端进行删除操作。 队列中允许进行插入操作的一端称为队尾,允许进行删除操作的一端 阅读全文
posted @ 2016-10-25 11:41 我所向往的美好 阅读(4919) 评论(0) 推荐(0)
摘要:接下篇:http://www.cnblogs.com/fuck1/p/5995857.html 堆栈的应用1:括号匹配算法 括号匹配问题 假设算术表达式中包含圆括号,方括号,和花括号三种类型。使用栈数据结构编写一个算法判断表达式中括号是否正确匹配,并设计一个主函数测试。 比如:{a+[b+(c*a) 阅读全文
posted @ 2016-10-25 11:21 我所向往的美好 阅读(2557) 评论(0) 推荐(0)
摘要:1、堆栈-Stack 堆栈(也简称作栈)是一种特殊的线性表,堆栈的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置进行插入和删除操作,而堆栈只允许在固定一端进行插入和删除操作。 堆栈中允许进行插入和删除操作的一端称为栈顶,另一端称为栈底。堆栈的插入和删除操作通常称为进栈 阅读全文
posted @ 2016-10-25 10:53 我所向往的美好 阅读(5986) 评论(1) 推荐(1)
摘要:1、单项循环列表 单向循环链表是单链表的另一种形式,其结构特点是链表中最后一个结点的指针不再是结束标记,而是指向整个链表的第一个结点,从而使单链表形成一个环。和单链表相比,循环单链表的长处是从链尾到链头比较方便。当要处理的数据元素序列具有环型结构特点时,适合于采用循环单链表。 2、单向循环链表 和单 阅读全文
posted @ 2016-10-25 10:20 我所向往的美好 阅读(5051) 评论(1) 推荐(0)
摘要:冒泡排序的优化,以及优化陷阱。 阅读全文
posted @ 2016-10-16 15:04 我所向往的美好 阅读(5361) 评论(2) 推荐(0)
摘要:异或运算: 首先异或表示当两个数的二进制表示,进行异或运算时,当前位的两个二进制表示不同则为1相同则为0.该方法被广泛推广用来统计一个数的1的位数! 参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。即: 0^0 = 0, 1^0 = 1, 0^1 = 1, 1^1 = 0按位异或的 阅读全文
posted @ 2016-09-23 11:36 我所向往的美好 阅读(49742) 评论(0) 推荐(1)