自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wejoncy的专栏

一起探讨技术,太开心了^o^

  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

原创 manacher算法理解笔记

关键语句if (i < mx) P[i] = MIN(P[2 * id - i], mx - i);else P[i] = 0;i表示此时str中第i个字符,id为上一次半径最大,或者向右边延伸最长的中心位置 mx为以id为中心,p[i_id]为半径右边的边缘位置 2*id-i 表示当前i关于id的对应位置举例子 abacdcaba 处理后 $ a # b #

2016-05-31 17:07:22 422

原创 KFIFO无锁队列

linux内核中实现了以非常漂亮的无锁队列,在只有一个读者和一个写者的情况下,无需上锁,而拥有线程安全的特性,使得性能相比于加锁方式实现的队列提升数倍KFIFO的分析可见http://blog.csdn.net/chen19870707/article/details/41083183 这位作者讲的很清楚KIFIO可以实现无锁队列,但是为什么可以实现呢,通过这种方式为什么可以线程安全?换句话说,平

2016-05-24 19:01:49 2549

原创 c++11 中成员变量初始化的顺序

参考c++11FAQ https://www.chenlq.net/cpp11-faq-chs 11以后可以直接在类里面初始化成员变量,类似这样class A{ int a=1; const int b=a; double c=1.1; const double d=2.2;};static 仍然不行,因为不能进行多次赋值吧。而里面成员变量的赋值顺序则是按照声明

2016-05-20 17:16:15 964

转载 Trie树详解及其应用

http://blog.csdn.net/hackbuteer1/article/details/7964147 一、知识简介 最近在看字符串算法了,其中字典树、AC自动机和后缀树的应用是最广泛的了,下面将会重点介绍下这几个算法的应用。 字典树(Trie)可以保存一些字符串->值的对应关系。基本上,它跟 Java 的 HashMap 功能相同,都是 key-value

2016-05-09 09:48:01 350

转载 后缀数组

http://blog.csdn.net/hackbuteer1/article/details/7968623问题描述 给定一个字符串,求出其最长重复子串 例如:abcdabcd 最长重复子串是 abcd,最长重复子串可以重叠 例如:abcdabcda,这时最长重复子串是 abcda,中间的 a 是被重叠的。 首先,如果输入字符串存储在c[0..n-1]中,那么就可以使用类似于下面的代码

2016-05-09 09:46:49 305

原创 散列表学习总结

第一个散列函数 将值与键值相映射第二个处理冲突 开放地址发,也就是将所有的值都放在数组中,处理方式 线性探测、二次探测、多个散列函数链式解决法 为了平衡性能,同样可以采用多个散列函数,使得总体平衡完全散列法 其实就是局部hash啦,假设两层,第一层为指针数组,存放hash数组的首地址,第二层才是存储值的hash表,采用两个函数,第一个散列到那个hash表,第二个散列到一个坑里面

2016-05-09 09:45:51 569

转载 二叉树转双向链表

http://www.cppblog.com/whspecial/archive/2014/01/03/205123.html将排序二叉树转换成双向链表 Posted on 2014-01-03 00:41 whspecial 阅读(2169) 评论(0) 编辑 收藏 引用 所属分类: 算法&&数据结构 将排序二叉树转化成双向链表,应该是一道很常见的面试题目,网上的实现比较多,有用递归也有用

2016-05-08 12:21:39 1025

原创 二叉树 后序遍历 非递归总结

学习了这个作者的博客http://blog.csdn.net/hackbuteer1/article/details/6583988后序遍历是三种遍历中最难的一种(非递归)作者提供了一种非常简单的遍历方式,我稍作修改void PostOrder_Nonrecursive(BiTree T,vector<char>&s) // 后序遍历的非递归 { stack<BiTree> s1;

2016-05-08 12:16:36 1118

原创 select 源码学习记录

先记录一下学习的成果,慢慢完善 四个相关函数 fd_set的结构在上一篇中有讲,同时解释了为什么最大1024. -fd_set为1024/32的long型数组结构体。也就是结构体里面保存了long型数组int FD_ZERO(int fd, fd_set *fdset); int FD_CLR(int fd, fd_set *fdset); int FD_SET(int fd,

2016-05-06 21:12:28 2439

原创 为何select做多只支持1024个描述符

内核代码中,原因一览无余 每一位一个描述符,总共1024/8/4*32=1024个

2016-05-06 20:14:15 7050 4

原创 VS2013 error C2146: 语法错误: 缺少“;”(在标识符“PVOID64”的前面) winnt.h 340

在编译邹老师的双目视觉软件中遇到的 环境vs2013 问题 PVOID64 未定义网上找了n多方法,什么调整顺序啦,修改winnt文件啦。。。。 最好还是不要修改winnt吧,都不太有效。然后自己在stdafx.h中加入 #define POINTER_64 __ptr64就可以了

2016-05-04 11:21:23 5820 2

原创 KMP next数组

最近看了这个,突然似乎理解了,记录一下 比如对于子串”abcdabceedabcd” 如何计算next数组,next数组决定字符比较是跳转的位置int next[15]={0};next[0]=-1;然后计算next[1] 前面只有一个a,那么next[1]=0; next[2] 由于前面的next[1]=0;因此,直接比较前面的一个字符‘b’和第一个字符’a’。不同,因此next[2]

2016-05-03 12:21:10 506

原创 堆排序的理解

主要看了这位大神的博客,地址>http://blog.csdn.net/morewindows/article/details/6709644/ 觉得讲的很清楚,不过还是记录一下堆的性质:(最大堆)父节点大于任何一个子节点,因此堆顶元素一定最大 (最小堆),父节点小于任何一个子节点,因此堆顶元素一定最小一般堆中不含重复数据吧~堆排序所谓堆排序,就是把满足性质的一个堆的堆顶元素取出,因为堆顶元素一

2016-05-03 12:09:48 501

原创 高效链表排序-归并算法

排序算法应该是最基础的了,快速、归并、选择、堆排序等等对于数组而言可以随机访问,那么对于链表呢,比如快排,两个指针分别网后往前走,而没有前驱指针的单向链表,无法完成这样的操作,当然了可以采用快慢指针的方式,在提交leetcode的时候,发现快排是会超时的。那么对于链表而言,可以采取一种怎么样的高效排序算法呢归并排序分而治之,分别拍好前后两个部分,然后合并两个有序链表,在合适不过,并且由于链表自带属性

2016-05-03 11:45:41 4685

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除