- 博客(38)
- 收藏
- 关注
原创 3d-photo-inpainting趟坑
2d转3d demo 实践原始git:https://github.com/vt-vl-lab/3d-photo-inpainting1.下载项目1.切结,要先下载项目。2.git clone下载不动就换浏览器下载。2.配置环境1.按提示安装就行了,无非就是源太慢,换成国内的源,然后不停重试,总会下载完毕。anaconda,pypi这些都需要换。2.下载模型,基本...
2020-04-20 20:04:05
2805
1
原创 编辑距离算法
好几年前写的编辑距离算法,几年不看就忘了,先记录下来吧。const UINT8_T CIndvstryword::LDCompare(char *lpszStrA,const UINT16_T uStrLenA, char *lpszStrB,const UINT16_T uStrLenB){ if( lpszStrA == NULL || lpszStrB == NULL ) r
2016-02-29 10:25:16
783
原创 快速查找出现一次的数字
在一个长度为n的整形数组a里,除了三个数字只出现一次外,其他的数字都出现了2次。请写程序输出任意一个只出现一次的数字,程序时间和空间复杂度越小越好。例如: a = {1,3,7,9,5,9,4,3,6,1,7},输出4或5或6该算法用于在一个集合中,其他数字都是出现偶次,只有一个或三个数字出现一次,求任意一个出现一次的数字。主要用到了异或操作和通过最小位的标记找单独数的技巧。
2016-02-29 10:09:20
686
原创 并查集的实现
并查集用于解决元素集合中,元素关系的集合的问题。例如给出两两关系,最后看整个集合中,谁是一伙的,有关系的。//// union_find.c// calc//// Created by lixia on 16/2/28.// Copyright © 2016年 qll. All rights reserved.//#include int n,m,pre[1000]
2016-02-29 09:59:08
499
原创 mongo c driver 在linux下编译使用
mongoDB现在是一个使用比较多的数据库,因为近日想存一些东西,所以,使用了一下。首先,安装mongoDB服务器端。现在出到了3.0,可以直接到官网下载。然后启动。如果想用命令行看的话,就到/usr/local/mongo/bin 使用./mongoc,就进到了命令行中。前面的很多人介绍,我就不细说了。然后是需要用类库操作mongoDB。我用的是mongo c driver,下载
2015-03-12 18:37:54
6039
原创 读 项亮《推荐系统实践》
前段时间对推荐系统很感兴趣,所以拿到了这本书,几乎都是用碎片时间阅读的,所以大概看了两个多月。因为没有看过推荐系统其他的书,所以无法横向评价,但对于一个认知为零的人,从该书中受益还是很大的。这本书讲的东西比较全,也很贴切实际。整本书篇幅不多,200页出头,很适合我这样的初学者,作为知识了解阶段的读物。开篇就是介绍推荐系统的概念和应用范围。第二章 利用用户行为数据。
2014-11-25 18:21:58
6829
转载 Python标准库(非常经典的各种模块介绍)
Python Standard Library翻译: Python 江湖群10/06/07 20:10:08 编译0.1. 关于本书0.2. 代码约定0.3. 关于例子0.4. 如何联系我们核心模块1.1. 介绍1.2. _ _builtin_ _ 模块1.3. exceptions 模块1.4. os 模块1.5. os.path 模块1.6. s
2014-09-17 10:47:59
67997
原创 Minhash介绍
1. minhash是用来降维的。用在两个事物相似度比较的场景。2. 比较两个事物的相似度,通常是抽出事物的特征,然后两个事物的特征进行比较。例如s1(1,3,5),s2(2,3,5),交集/并集,算分。3. 但如果事物特别多,并且特征也特别多,在计算上,工作量过大,于是想到降维,降低特征数。4. minhash认为,随机从特征中抽样一些来进行比较,和拿全部特征
2014-07-23 00:58:41
5773
转载 程序员能力矩阵 Programmer Competency Matrix
(出处http://static.icybear.net/[CN]Programmer%20competency%20matrix.htm)[译 文]程序员能注意:每个层次的知识都是渐增的,位 于层次n ,也蕴涵了你需了解所有低于层次n 的知识。计算机科学 Computer Science 2n (Level 0)n2
2014-07-20 20:14:52
594
原创 第一个python程序
想学python很久了,一直在看,上次花半天写了个工具不能执行,一气之下用c++15分钟搞定。这次又有个写小工具的机会,终于搞定了,丑是丑了点,不过我还是看着很顺眼。中间用到了文件的一些操作,包括打开,读,写,查看文件在不在等等操作。import osimport timeimport globfile_object = open('querylist.txt', 'r')fil
2014-01-21 14:09:58
748
转载 ptmalloc分配器的分析
1 前言2 x86平台Linux程序的内存分布3 Allocator4 chuck的组织4.1 chuck4.2 chunk中的空间复用5 空闲 chunk 容器5.1 Bins5.2 Fastbins5.3 Unsorted Bins5.4 例外的 chunk6 sbrk & mmap6.1 sbrk6.2 mmap
2013-02-20 16:16:38
681
原创 c++宏定义中 #,#@,##的用法
在glibc中发现有这种用法 #define GLRO(x) _##x后查询发现,原来是连接字符用的,和他相似的还有“#”和“#@” 1.“#”的用法#就是表示后面的是个表示符是个字符串,例如#define str(a) #aprint(str(abc)); ==> print(“abc”) 2.“#@”的用法#@就是表示后面的是个表示符是个字符,例如
2013-02-18 17:18:14
745
原创 glibc2.16.0阅读笔记
一直想看看glibc的源码,看看人家是怎么写程序的。趁着过年,工作不太多,学习一下。已经看了几天了,今天才想起写个笔记。省的以后忘了。我是从目录的字母顺序看的。今天看到了dlf。看了cache.c的实现。基本就是个hash的实现,可以存储和加载这个hash,所有的信息都是以节点的形式加进hash,每个节点有path、lib、flg什么的。hash冲突的方式是用链表解决。
2013-02-06 18:07:21
562
原创 垂直搜索采集系统总结(上)
上个工作的内容是为一个视频搜索做一个采集系统,工期大概3个半月(设计是三个月)。做的很艰难,所以总结一下。 通常一个垂直搜索,包括采集、数据集成、索引检索系统。采集负责把数据抓取下来,数据集成负责把相关数据糅合在一起,索引和检索负责用户的查询。 采集系统负责从别的网站定期抓取更新页面,从页面中拿到我们需要的信息,并输送给集成系统。所以采集也分为好几个模块,调度模块、下载模块、抽
2013-02-06 17:53:41
698
原创 实现一个lockfree的队列——错误修改
上篇文章:实现一个lockfree的队列写了上一个文章后,对于速度不满意,于是又琢磨了一下,发现了一个很严重的错误。这个错误是同事发现的。他说曾经发现,有时某个线程能被挂起很长时间。如果有这样的情况,就可能会造成第一轮的A线程和第二轮的B线程访问同一个下标,这无疑是会出问题的。于是我把下面放值和取值的时候也做了个限定,只有一个线程能通过该锁,这样就安全了。修改了标记的设定,不用
2012-09-19 15:39:03
1285
原创 从linux shell命令行输出中取得数据以及jwsmtp使用实例
为了从日志文件中统计信息,所以用到了grep命令。觉得手动麻烦,就想着写个程序,每天自动执行一次这个命令,把结果写成邮件自动发我邮箱里。找了些资料,发现用popen函数可以执行shell命令,命令的结果可以通过fgets得到。程序如下:static int execCmd( char* cmd, char* retbuf, int bufsize ){ FILE* fp =
2012-09-18 10:18:43
2997
转载 __sync_fetch_and_add系列的命令
__sync_fetch_and_add系列的命令,发现这个系列命令讲的最好的一篇文章,英文好的同学可以直接去看原文。Multithreaded simple data type access and atomic variables __sync_fetch_and_add系列一共有十二个函数,有加/减/与/或/异或/等函数的原子性操作函数,__sync_fetch_and_add,
2012-09-12 16:12:46
35507
原创 实现一个lockfree 的队列
看梁总的题目,实现高速队列,百思不得其解。后来看了答案,算是比葫芦画瓢实现了一个。其实最重要的两点:1。实现一个原子加加,用来得到一个唯一下标。2.用一个永远不会使用的值当标记,验证该下标对应的位置是否有值。代码如下: // 临界锁,线程安全// 必须要有一个不会用的空值,template class CQQueue_Lockfree{public:
2012-09-12 13:02:42
1931
转载 典型 PC 系统各种操作指令的大概时间
典型 PC 系统各种操作指令的大概时间 execute typical instruction 执行基本指令1/1,000,000,000 sec = 1 nanosec fetch from L1 cache memory 从一级缓存中读取数据0. 5 nanosec branch mispre
2012-08-30 10:18:26
1309
原创 指定长度的strstr函数
前一段工作中用到了,找了几个方法。都实现了一下,测试了下,都差不多,glibc的实现方法相比还是快一些,stristrex也不慢,至于qi_strnstr,是自己的一个想法实现的,不过可悲的是,他是最慢的。 char *glibc_strnstr (const char *phaystack, const char *pneedle, int len){ typedef unsig
2012-08-22 15:06:21
4825
原创 GBK和Utf-8字符串截取函数
工作中用到了,就写了一个。GBK编码从0x8140-0xFEFE,去除0xxx7F这部分。包括了所用的中日韩字符集。判断是否为GBK可以用isGBKChe 或 isGBKChe2,都可以。一个是从区间判断,一个是从第一个字节的头位为一这个特性判断。typedef unsigned char var_u1;#define isZone(p,a,b) ( (p) >= (a
2012-08-21 18:14:45
1031
转载 字符集GBK和UTF8的区别说明
GBK就是在保存你的帖子的时候,一个汉字占用两个字节。。外国人看会出现乱码,此为我中华为自己汉字编码而形成之解决方案。UTF8就是在保存你的帖子的时候,一个汉字占用3个字节。。但是外国人看的话不会乱码,此为西人为了解决多字节字符而形成之解决方案。ASCII(ISO-8859-1)是鼻祖,最简单的方式,字节高位为0GB2312、GBK、GB18030,这几个是中文编码方式,并向下兼容。G
2012-08-21 13:56:49
1341
转载 做一个懒惰的程序员
<br />首页声明一下,原文的地址是:http://blog.imalbert.com/archives/35.html,下面是原文:<br />~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(华丽丽滴分界线)<br />本文写给所有可爱的程序员,(我)你们都是一群可爱的,用双手建造世界的思想家。<br />从今天起,我要做一个懒惰的程序员。<br />第一 拒绝鼠标<br />从今天,我将拒绝鼠标。<br />鼠标,是鼠标手的根源,无数的程序员都被鼠标手
2011-04-11 18:26:00
510
转载 平衡二叉树
<br />平衡二叉树(Balanced Binary Tree)又被称为AVL树(区别于AVL算法,且具有以下性质:它是一 <br /> 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。构造与调整方法 平衡二叉树的常用算法有红黑树、AVL、Treap、伸展树、左偏树等。红黑树红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由Rudolf Bayer发明的,他称之为"对称二叉B树",它现
2011-03-14 15:50:00
1395
转载 常见排序算法的稳定性
<br />排序算法的稳定性:若待排序的序列中,存在多个具有相同关键字的记录,经过排序, 这些记录的相对次序保持不变,则称该算法是稳定的;若经排序后,记录的相对 次序发生了改变,则称该算法是不稳定的。<br /> 稳定性的好处:排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。基数排序就是这样,先按低位排序,逐次按高位排序,低位相同的元素其顺序再高位也相同时是不会改变的。另外,如果排序算法稳定,可以避免多余的比较;<br /> 回到主题,现在分析
2011-03-14 14:23:00
472
转载 六种Socket I/O模型
<br /><br />本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教。<br />一:select模型<br />二:WSAAsyncSelect模型<br />三:WSAEventSelect模型<br />四:Overlapped I/O 事件通知模型<br />五:Overlapped I/O 完成例程模型<br />六:IOCP模型<br />老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系。他们的信会被邮递员投递到他们的信箱
2010-10-19 11:12:00
664
转载 C++跨平台开发心得小结
linux编程与windows编程的差异之处: 1. 文件与目录的大小写以及路径分隔符的差别 windows下不区分大小写,路径分隔符一般使用"/";linux下区分大小写,路径分隔符使用"/"。 2. itoa()函数在linux下并不存在 所以使用类似sprintf();之类的函数是个不错的替代。(为什么说是类似函数,看下面一条啦) 3. _snprintf()与_vsnprintf()的差别 sprintf()不能检查目标字符串的长度,可能造成众多安全问
2010-10-19 10:46:00
2009
转载 转载::学习C/C++编程,Linux平台的优势与劣势
<br />劣势:<br /><br />1. 熟悉Linux的人不多,熟悉它需要较长时间。<br />2. 中文资源不够多,往往不全或者不够新。<br />3. 过去学的很多windows的东西,到Linux下行不通。<br />4. 充满Linux风味的vim/emacs上手难,需大量使用才能熟练。<br />5. 门槛高,初学时学习难度曲线陡峭。<br /><br /><br /><br />优势:<br /><br />1. 物以稀为贵,掌握Linux的人,比windows的少很多,而Linux平台
2010-07-06 18:20:00
951
转载 【转】C++各大明库介绍
<br /><br />一、标准库 <br /> <br /> 标准库中提供了C++程序的基本设施。虽然C++标准库随着C++标准折腾了许多年,直到标准的出台才正式定型,但是在标准库的实现上却很令人欣慰得看到多种实现,并且已被实践证明为有工业级别强度的佳作。<br />在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界
2010-07-02 18:06:00
1252
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人