07 2016 档案

摘要:联机算法:联机算法是在任意时刻算法对要操作的数据只读入(扫描)一次,一旦被读入并处理,它就不需要在被记忆了。而在此处理过程中算法能对它已经读入的数据立即给出相应子序列问题的正确答案。 离线算法:算法设计策略都是基于在执行算法前输入数据已知的基本假设,也就是说,对于一个离线算法,在开始时就需要知道问题 阅读全文
posted @ 2016-07-30 14:54 __sipl 阅读(1194) 评论(0) 推荐(0)
摘要:原文地址https://www.douban.com/note/271270932/ 对一个数是n否为素数的判断可以从2到根号n依次去除n,如果n能被其中一个整除则说明n不是素数,否则n是素数。还可以用厄拉多塞筛法,采用构造素数表的方式,从2起,依次列出后续数字,如果某个数是前面数字的倍数,则从表中 阅读全文
posted @ 2016-07-30 09:22 __sipl 阅读(465) 评论(0) 推荐(0)
摘要:最近又遇到了一个崩溃,栈回溯非常怪异。 其中的xxxxx是公司的模块和函数,故隐藏,对接下去的分析没有影响。 一开始,因为没有接触过__fortify_fail这个函数,另外加上因为有一部分栈回溯没有对应的符号,我以为是数组溢出把栈信息破坏了。但实际上想想不对,如果是栈信息被破坏了,不出意外的话,应 阅读全文
posted @ 2016-07-29 17:31 __sipl 阅读(19013) 评论(0) 推荐(1)
摘要:原文地址http://www.matrix67.com/blog/archives/105 这或许是众多OIer最大的误区之一。 你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有搜了,这已经被证明是NP问题了”之类的话。你要知道,大多数人此时所说的NP问题其实都是指的NPC问题。他们没 阅读全文
posted @ 2016-07-28 11:27 __sipl 阅读(278) 评论(0) 推荐(0)
摘要:原创作品,转载请注明出处http://www.cnblogs.com/leo0000/p/5713547.html 之前已经写了有关图的最短路径算法,对比查找强分支的算法,个人觉得关键在于遍历时的顺序,是先序还是后序还是层序,中序没有使用到。 查找强分支的流程如下: 1.读入图,有两个读入算法,一个 阅读全文
posted @ 2016-07-28 09:42 __sipl 阅读(1686) 评论(0) 推荐(0)
摘要:原创作品,转载请注明出处http://www.cnblogs.com/leo0000/p/5711811.html 这个代码是我在上一篇博文之前写的,当时只是简单地使用数组来代表一个图。拓扑排序的关键在于不停地寻找入度为0的点,如果算法还没有结束就找不到入度为0的点了,那么这个图中肯定有圈,这也是拓 阅读全文
posted @ 2016-07-27 17:00 __sipl 阅读(643) 评论(0) 推荐(0)
摘要:原创作品,转载请注明出处http://www.cnblogs.com/leo0000/p/5711576.html 自己写了有关了图的读入和无权最短路径和含有负边值的最短路径算法实现。 其中的迪杰斯特拉算法,求解无负边值的最短路径算法,没有写,因为还没有学习这个配对堆,当然不使用配对堆,使用优先队列 阅读全文
posted @ 2016-07-27 16:15 __sipl 阅读(903) 评论(0) 推荐(0)
摘要:原创作品,转载请注明出处http://www.cnblogs.com/leo0000/p/5707482.html 最近遇到一个因符号找不到导致程序无法启动的情况,原因就是在于字符串表被修改了。下面是我自己创建的一个栗子;因为自己遇到的问题就是函数指针引起的,所以这边还是使用函数指针。 test1. 阅读全文
posted @ 2016-07-26 14:55 __sipl 阅读(672) 评论(0) 推荐(0)
摘要:原创作品,转载请注明出处http://www.cnblogs.com/leo0000/p/5694416.html 最近因为一个很有意思的段错误学习了一些新的东西。 当时现象是这样的,程序正在运行,系统升级,此时某些so已经被该程序所使用,现在把这些so文件覆盖了,导致了该程序崩溃。 调试dump文 阅读全文
posted @ 2016-07-22 10:59 __sipl 阅读(3403) 评论(0) 推荐(0)
摘要:这个问题在我大三的时候开始搞嵌入式编程一直困扰着我。后来做了一些实验搞懂了,但当时还没有写博客的习惯。 * p_vaddr 也就是运行地址 该成员给出了该段在内存中的首字节地址。* p_paddr 也就是加载地址 在物理地址定位有关联的系统中,该成员是为该段的物理地址而保留的。由于 System V 阅读全文
posted @ 2016-07-21 19:40 __sipl 阅读(803) 评论(0) 推荐(0)
摘要:在编译共享库必须加上-fpic。这是为什么呢? 首先看一个简单的例子: 先不加-fpic的情况下生成库,反汇编查看fun1的机器码 可以看出调用printf的位置是那个唯一的一个call,并不是跳转到plt表,有关plt表的内容可以查看我前面的博文。也就是说在该库被加载时需要修改代码段来达到重定位的 阅读全文
posted @ 2016-07-21 13:51 __sipl 阅读(2876) 评论(0) 推荐(0)
摘要:仅仅是记录一下自己写过的堆操作的代码,个人觉得堆的优势在于建立和获取最小或者最大元的方便,有任何次序要求的算法,堆并不合适。 阅读全文
posted @ 2016-07-20 15:49 __sipl 阅读(215) 评论(0) 推荐(0)
摘要:今天忽然想到cpu对各种基本运算的速度对比,我对比了异或,加法和乘法,结果发现速度时间,加法小于乘法小于异或, 原本我以为异或会是最快的,结果异或是最慢的,这跟cpu中的alu算术逻辑单元的实现有关,可能各个cpu的情况会不同, 阅读全文
posted @ 2016-07-16 20:49 __sipl 阅读(2642) 评论(0) 推荐(0)
摘要:以下用大O表示节点,ABC表示三个集合。 仅分析左子树的情况,因为对称,右子树的情况一样。 插入节点前 O / \ O A / \ B C 插入节点后: O / \ O A / \ B C / O 此时造成了最高节点的不平衡,说明了B+2 - A = 2;另外可以知道B = C,考虑B<C,那么在插 阅读全文
posted @ 2016-07-14 19:36 __sipl 阅读(501) 评论(0) 推荐(0)
摘要:对于二叉查找树的最大难处,我觉得是在于删除,当删除一个元素时,简单地说有两种情况,一种是节点,一种是叶子。假设被删除值为D 1.叶子,很简单,找到叶子的父节点,然后将这个父节点指向该叶子的树枝赋为0;有一种特殊情况是就一个根,那么释放根,然后返回0。 2.节点,需要做两步,找到该节点的左子树的最大值 阅读全文
posted @ 2016-07-13 17:25 __sipl 阅读(571) 评论(0) 推荐(0)
摘要:声明:以下的代码成果,是参考了网上的injso技术,在本文的最后会给出地址,同时非常感谢injso技术原作者的分享。 但是injso文章中的代码存在一些问题,所以后面出现的代码是经过作者修改和检测的。也正因为这些错误,加深了我的学习深度。 最近因为在学习一些调试的技术,但是很少有提到如何在函数运行时 阅读全文
posted @ 2016-07-01 17:26 __sipl 阅读(10244) 评论(0) 推荐(2)
摘要:call和jmp都是跳转指令,但是call的同时会把pc地址压入堆栈,并且这两种方式都有远和近跳转。下面的分析不全,因为没有在网上找到足够的资料,个人创造这个情景还是有些困难。 1.例子中的call的机器码为0xe8。 0x400204ba <+30>: e8 41 b6 05 00 call 0x 阅读全文
posted @ 2016-07-01 10:39 __sipl 阅读(5011) 评论(0) 推荐(0)