自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

NeeMo——仗剑走天涯

源码读万遍,编码如有神。

  • 博客(18)
  • 问答 (2)
  • 收藏
  • 关注

原创 Ubuntu安装Google Chrome,报NSS version的错误

google-chroome nss

2017-10-21 13:01:36 3493

原创 Ubuntu14.04安装搜狗输入法

ubuntu14.04安装搜狗输入法

2017-10-20 22:28:29 273

原创 求数组中最长递增子序列(编程之美2.16)

#ifndef _LGONGEST_INCREMENTAL_SEQUENCE_H_ #define _LGONGEST_INCREMENTAL_SEQUENCE_H_#include #include using namespace std;//编程之美2.16//最长递增子序列,使用动态规划的时间复杂度为O(n^2).//但是通过剪枝可以大大减少比较的次数。//主要思想是:

2013-10-05 15:44:43 927

原创 根据前序跟中序遍历的结果建立二叉树——迭代和递归的方法

比如对于前序:1,2,4,8,9,5,10,11,3,6,12,13,7后序:8,4,9,2,10,5,11,1,12,6,13,3,7建成的树应该是1-13的满二叉,后序遍历为:8,9,4,10,,11,5,2,12,13,6,7,3,1主要思想就是把前序放在上面,后序放在下面,依次从后序找到这个前序的位置,建立左右子树。具体思想还得画图,我就不说啦,还是贴代码吧:#ifnd

2013-10-02 16:04:48 825

原创 两个有序数组元素之和的最小K个值

这是在http://blog.csdn.net/insistgogo/article/details/12187329里面看到的一道题,自己拿来做一做。只做加法的部分吧。我想到的一个思路就是对于1,3,5,7,92,4,6,8,10这两个序列,肯定是1+2是最小的,然后1+4这个方法虽然时间复杂度低,但是需要的额外空间也不少,而且编起来也很麻烦。对于求前k个最小值,

2013-09-30 14:59:25 1680

原创 华为机试题之表达式求值

今天做了华为机试,最后一道题做错了,回来又重新写了一下。表达式求值往年好像有的,但是这次的题加了括号,所以写起来麻烦了一些。还有就是在处理+-号的时候做错了,可能是当时脑袋太蒙了,没有看出来,160的题只得了61分(不过话说这个1是咋来的?)。下面附上代码吧:#ifndef _RESULT_OF_EXPRESS_H_ #define _RESULT_OF_EXPRESS_H_

2013-09-17 19:53:10 1300

原创 字符串加减法(整数,小数)

最近在做华为的机试题的时候发现有字符串的小数减法,在百度知道上又看到有人问字符串减法的问题,于是也想练练手。#ifndef _STRING_OPS_H_ #define _STRING_OPS_H_//[left, right)void string_swap(char* input, size_t left, size_t right){ for (; left < --righ

2013-09-12 13:32:11 3756 2

原创 levelDB学习笔记——Version

Version部分是levelDB中对LSM-Tree的“Merge”实现的精要。它主要包括以下的几个类:VersionEdit类主要是对Version的一些修改,比如add_files,new_files,还有log_number等。VersionEdit一般只有一个。Version类Version类保存着有效的files。所以它的作用主要是进行files的Itera

2013-08-30 10:50:40 2321

原创 levelDB学习笔记 —— table

levelDB并不跟beansDB,nessDB一样将key和value分开,而是将key和value一起存放。存放的文件就是.sst文件,而一个文件的结构就是一个table。table筛选器的阅读顺序应该是1.block_builder.cc 结合block.cc文件最开始的注释,我们可以得到一个block的结构:许多个entry,最后是一个数组来记录一些

2013-08-22 21:17:13 1364

原创 LevelDB 学习笔记 —— utils

LevelDB是谷歌两个大牛写的KV数据库,相信有很多人已经听过它的名字了。具体背景不做介绍。今天看的是它的util文件夹,由于以前看过了,所以对其中的代码并不是很陌生,但还是卡在了cache.cc上。其余的util文件其实没什么多大的难度,arena.cc创建了一个简单的内存分配器,comparator.cc由于还没有接触LevelDB的内部逻辑,可以不用看。histogram.cc是柱

2013-08-19 15:03:16 1464

原创 nessDB2.0 学习笔记

nessDB2.0是1.0的改进版,整个sst的结构有了很大的变化,所以阅读源代码的时候虽然整体的思想没有改变,但是也不能一直想着1.0的结构,其实附带上spec文件夹下的small-splittable-tree.txt文件阅读,会给整体阅读带来极大的方便。 首先2.0还是那些util文件:buufer.c,bloom.c,skiplist.c 基本没变化degug.c 是生

2013-08-18 22:47:45 1164

原创 nessDB1.0学习笔记

接下来看nessDB。nessDB是使用LSM-Tree写的一个小巧简易的数据库。它的代码不多,但是确是学习LSM-Tree和数据库启动恢复的好例子。LSM-Tree使用BeansDB的BitCask使用的Log-Structred结构(其实应该说是BitCask仿照LSM-Tree,因为后者更早),更多的关于LSM-Tree的资料可以参考:http://duanple.blo

2013-08-17 11:31:13 1442

原创 BeansDB源码剖析——bitcask.c

/** Beansdb - A high available distributed key-value storage system:** http://beansdb.googlecode.com** Copyright 2010 Douban Inc. All rights reserved.** Use and distribution lic

2013-08-14 19:55:05 2601

原创 BeansDB源码剖析——record.c

//DataRecord与item的不同是,item只保存键值,而record保存键值和value值,但是内存里只存PADDING的大小typedef struct data_record { char *value; union { bool free_value; // free value or not,改为need_free比较好 uint32_t crc;

2013-08-14 19:53:07 1591

原创 BeansDB源码剖析——htree.c

typedef struct t_item Item;struct t_item { //int bucket = item->pos & 0xff; //表示是第几个文件 //uint32_t pos = item->pos & 0xffffff00; //表示在文件中的位置 uint32_t pos; //大于0该数据有效,小于0表明无效。 //ver不会等于0,

2013-08-14 19:45:16 1933

原创 BeansDB学习笔记

BeansDB是豆瓣的刘洪清大哥写的一个分布式存储系统。关于它的详细介绍可以参看http://www.douban.com/note/122507891/ 同时InfoQ中还有刘洪清大哥的演讲视频及资料:http://www.infoq.com/cn/presentations/lhq-beansdb-design-implementationBeansDB是一个简化了的D

2013-08-14 19:39:31 2568

原创 GDBM学习笔记

符合X/Open技术规范的UNIX版本自备了一个数据库dbm。它使用hash表来保存非结构化数据,不支持SQL。它只是一个存储检索数据的例程。数据以key/data对的形式存储在文件中。规范中允许把关键字/数据对的长度限制为1023个字节,但通常实现时不限制。关键字的取值被用作存储数据的索引。dbm被X/Open组织标准化为ndbm。GNU的dbm实现为gdbm(GNU dbm的缩写),它本身

2013-08-08 16:11:20 4992 1

原创 Problem 1802 —— 火车调度

最近在ecnu的ACM上看到一道题:http://acm.cs.ecnu.edu.cn/problem.php?problemid=1802是数据结构中关于火车调度的算法(已经忘了这道题了。。)。刚开始没有在网上查资料,自己在那瞎琢磨,想着通过检验字符的相互顺序来判断一个情况是否能出现,但总是感觉不对头,应该还有简单的方法。后来在网上查了资料,发现是用两个栈来模拟火车的进出。为了使讲述方便,新增一

2013-07-31 21:30:54 1304

空空如也

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

TA关注的人

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