- 博客(272)
- 资源 (10)
- 收藏
- 关注
原创 RocksDB系列二:RocksDB Option
RocksDB用户可以通过Options类将配置信息传入引擎,除此之外,还可以以下其他方法设置,分别为:通过option file生成一个option class从option string中获取option 信息从string map中获取option信息option string 用户可以调用GetColumnFamilyOptionsFromString() or GetDBOption...
2018-07-16 10:55:45 5719
原创 RocksDB系列一:RocksDB基础和入门
1、简介 RocksDB是FaceBook起初作为实验性质开发的一个高效数据库软件,旨在充分实现快存上存储数据的服务能力。RocksDB是一个c++库,可以用来存储keys和values,且keys和values可以是任意的字节流,支持原子的读和写。除此外,RocksDB深度支持各种配置,可以在不同的生产环境(纯内存、Flash、hard disks or HDFS)中调优,支持不同的...
2018-07-14 19:19:00 23735 1
原创 二叉树总结
树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关的题目基本都可以用递归思想解决,当然有些题目非递归解法也应该掌握,如非递归遍历节点等等。本文努力对二叉树相关题目做一个较全的整理总结,希望对找工作的同学有所帮助。
2016-06-07 17:08:25 1524 1
原创 常用的正则表达式
^\d+$ //匹配非负整数(正整数 + 0) //匹配整数 ^\d+(\.\d+)?$ //匹配非负浮点数(正浮点数 + 0) ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ //匹配正浮点数 ^((-\d+(\.\d+)?)|(0+(\.0+)?))$ //匹配
2015-10-10 21:53:57 639 1
转载 git 的origin 和master
首先要明确一点,对git的操作是围绕3个大的步骤来展开的(其实几乎所有的SCM都是这样)1. 从git取数据(git clone)2. 改动代码3. 将改动传回git(git push)这3个步骤又涉及到两个repository,一个是remote repository,再远程服务器上,一个是local repository,再自己工作区上。其中1,
2014-06-19 11:36:08 994
转载 git reset and git checkout
git reset --hard :1.替换引用的指向.引用指向新的提交ID;2.替换暂存区.替换后,暂存区的内容和引用指向的目录树一致;3.替换工作区.替换后,工作区的内容变得和暂存区一致,也和HEAD所指向的目录树内容相同.git reset --soft :1.替换引用的指向.引用指向新的提交ID.即只更改引用的指向,不该编暂存区和工作区.git
2014-06-10 16:53:47 1268
转载 git reset
reset命令有3种方式: git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息 git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可 git reset
2014-06-10 16:46:30 954
原创 HashMap
1.HashMap的数据结构 数组的特点是:寻址容易,插入和删除困难;而链表的特点是:寻址困难,插入和删除容易。那么我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构?答案是肯定的,这就是我们要提起的哈希表,哈希表有多种不同的实现方法,我接下来解释的是最常用的一种方法—— 拉链法,我们可以理解为“链表的数组” ,如图: 从上图我们可以发现哈希表是由数组
2013-08-04 16:06:27 1415 1
原创 不要被阶乘吓到(beauty of programe)
问题一:给定一个整数N,求该整数的阶乘中末尾含有多少个0?例如:N=10;N!=3628800,N!的末尾含有两个0.问题二:求N!的二进制表示中最低位1的位置 阶乘:是所有小于和等于该数的正整数的乘积,自然数N的阶乘是N!,这一表示法是基斯顿 卡曼引入的。阶乘定义为:一种数学计算方式。用比给定数值(必定大于等于零)小的自然数依次相乘直到最终因数为给定数值为止。记作“N!”。例如 5
2013-07-15 20:43:17 1652 1
原创 计算数字二进制表示中的1个数(五种解法)------------------编程之美
对于一个数字,无符号,求其二进制表示中的1个数,要求算法执行效率尽可能高。解法一:考虑利用整数除法的特点,通过相除和求余来分析。void fun1(int num){ int ct=0; while (num) { if (num%2==1) { ct++; } num/=2; } cout<<ct<<endl;}解法二、使用位操作 假设该数是一个无
2013-07-12 08:17:48 2959 5
原创 linux下 fork题 转
Linux下fork()函数浅析实验环境:Ubuntu 3.5.0-32-generic头文件: #include #include 函数原型: pid_t fork(void);(pid_t 是一个宏定义,其实质是int 被定义在#includesys/types.h>中)返回值: 若成功调用
2013-07-10 21:17:11 1227
原创 main函数结束后怎么继续执行一段代码?
在main函数执行结束后,还想继续执行一段甚至多段代码,这就需要用_onexit注册一个函数,使该函数在main结束后执行。_oneexit(funname);其中参数是一个函数名,且该函数无参数,返回值为int。看代码:#include using namespace std;int fun1(){ cout<<"this is in func1 \n"; return 1;}
2013-07-10 15:39:02 2456 2
原创 操作系统各大公司笔试题汇总
1、在段页式存储管理中,其虚拟地址空间是()A、一维 B、二维 C、三维 D、层次答案:B2、采用( )不会产生内部碎片(“内零头”)A、分页式存储管理
2013-07-05 10:35:47 1465
原创 IPC之消息队列详解与使用
伺服系统的arm程序里进程间通信用的是消息队列,现在把消息队列的使用总结一下: 消息队列就是一个消息的链表。对消息队列有写权限的进程可以向其中按照一定的规则添加新消息;对消息队列有读权限的进程可以从消息队列中读出消息。消息队列是随内核持续的。下面介绍三个概念:1;随进程持续:IPC一直存在,直至打开IPC对象的最后一个进程关闭该对象为止,如管道和有名管道2;随内核持续:IPC一直持续到内核重新自举或者显示删除对象为止。如:消息队列,信号量,共享内
2013-07-05 09:09:05 2934
原创 IPC之匿名管道详解与使用
一、概念进程间通信是在不同进程间传播或者交换消息。管道,也就是匿名管道,是linux系统下最常见的进程间通信方式之一,它是在两个进程间实现一个数据流通的通道,优点:简单易用;缺点:功能简单。管道是linux/unix系统间比较原始的进程间通信方式,实现数据以一种数据流的方式在进程间流动。匿名管道在系统中没有实名的,并不可以在文件系统中以任何方式看到该管道,管道只是进程的一种资源,随着进程的
2013-07-04 10:30:48 1788
原创 fork与vfork详解
一、fork函数要创建一个进程,最基本的系统调用是fork,系统调用fork用于派生一个进程,函数原型如下: pid_t fork(void) 若成功,父进程中返回子进程ID,子进程中返回0,若出错返回-1;fork()系统调用的作用是复制一个进程,当一个进程调用它,完成个就出现两个几乎一摸一样的进程,新进程是子进程,原来的进程是父进程。子进程是父进程的一个拷贝,子进程从父进程那里得到了代码
2013-07-03 14:56:11 1556
原创 外部排序分析
当对数据记录量巨大的数据文件进行排序时,由于受到内存容量的限制,无法将所有数据记录一次全部读入到内存进行。排序过程中需要多次进行内、外存之间的数据交换。利用外存对数据文件进行排序称为外部排序。 外部排序最基本的方法是归并。这种方法是由两个相对独立的阶段组成:① 按内存(缓冲区)的大小,将n个记录的数据文件分成若干个长度为l的段或子文件,依次读入内存并选择有效的内部排
2013-07-03 11:00:57 2010
原创 堆排序解析
一、堆的定义 是n个元素的序列H={k1, k2 , … kn},满足ki≤k2i 当2i≤n时 ki≥k2i 当2i≤n时或者 ki≤k2i+1 当2i+1≤n时 ki ≥k2i+1 当2i+1≤n时 由堆的定义知,堆是一棵以k1为根的完全二叉树。若对该二叉树的结点进行编号(从上到下,从左到右),得到的
2013-07-02 09:19:48 1859
原创 Fibonacci查找
一、Fibonacci查找方法是根据Fibonacci数列的特点对查找表进行分割。 由算法知,Fibonacci查找在最坏情况下性能比折半查找差,Fibonacci查找的优点是分割时只需进行加、减运算。Fibonacci数列的定义是: F(0)=0,F(1)=1,F(j)=F(j-1)+F(j-2) 。 int fib(int n){
2013-07-01 10:26:09 2016
原创 最短路径算法详解《转载》
1 最短路径算法在日常生活中,我们如果需要常常往返A地区和B地区之间,我们最希望知道的可能是从A地区到B地区间的众多路径中,那一条路径的路途最短。最短路径问题是图论研究中的一个经典算法问题, 旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。 算法具体的形式包括:(1)确定起点的最短路径问题:即已知起始结点,求最短路径的问题。(2)确定终点的最短路径问题:与确定起点
2013-06-30 10:58:37 1447
翻译 北京和硅谷在创新方面的区别
北京和硅谷在创新方面的区别 北京和硅谷最基本的差别并不是天空的颜色不一样,而是在一边,年轻人在讨论着购房、买车和结婚,而在另一边,年轻人在讨论着怎么去改变世界。 时而不时地,我们可以从报纸上或者因特网上看到一家硅谷的公司估值约10亿美元,而且我们经常看到IT行业排名很靠前的公司,比如:Google,facebook,Twitter,Amazon等等。人们很好奇,为什么这
2013-06-29 15:35:08 1497
原创 http协议详解 转载
当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看。也希望对大家的开发工作或者测试工作有所帮助。使用Fiddler工具非常方便地捕获HTTP Request和HT
2013-06-28 09:59:01 1115
原创 vfork与fork区别 转载
fork()与vfock()都是创建一个进程,那他们有什么区别呢?总结有以下三点区别: 1. fork ():子进程拷贝父进程的数据段,代码段 vfork ( ):子进程与父进程共享数据段 2. fork ()父子进程的执行次序不确定 vfork 保证子进程先运行,在调用exec 或exit 之前与父进程数据是共享的,在它调用exec 或exit
2013-06-28 09:44:34 1103
原创 今天趋势面试第二轮被鄙视了
前一段时间在网上投了趋势夏令营,后来在我们学习参加了笔试,笔试过后大概3-4天吧,收到趋势的面试通知。 今天上午一大早就去了苏豪国际广场参加趋势的面试,第一轮面试大概刷掉了四分之三的人,第二轮估计还要刷掉一般人左右。在一面中,面试官问了项目,自己使用过的类,数据库,串口通信,计算机网络方面的知识,由于准备的比较充分,自我感觉还不错,后来就进入二面,最后一轮的面试。二面总,两位面试官很好,
2013-06-27 16:51:47 3235 14
原创 基本排序算法小结
一、插入排序1 排序思想 将待排序的记录Ri,插入到已排好序的记录表R1, R2 ,…., Ri-1中,得到一个新的、记录数增加1的有序表。 直到所有的记录都插入完为止。复杂度为O(n2) 。 设待排序的记录顺序存放在数组R[1…n]中,在排序的某一时刻,将记录序列分成两部分:◆ R[1…i-1]:已排好序的有序部分;◆ R[i…n]:未排好序的无序部分。
2013-06-21 16:36:54 2053 3
原创 二叉排序树源代码
#include"iostream"using namespace std;struct BiTNode { int data; struct BiTNode *lchild,*rchild;};typedef struct BiTNode BiTNode,*biTree;/******************************************函数名:biTre
2013-06-21 10:43:07 1189
原创 二叉排序树详解
二叉排序树(Binary Sort Tree或Binary Search Tree) 的定义为:二叉排序树或者是空树,或者是满足下列性质的二叉树。(1) :若左子树不为空,则左子树上所有结点的值(关键字)都小于根结点的值;(2) :若右子树不为空,则右子树上所有结点的值(关键字)都大于根结点的值;(3) :左、右子树都分别是二叉排序树。 结论:若按中序遍历一棵二叉排序树
2013-06-21 10:38:47 2073
转载 C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容
一、本文目的与说明 1. 本文目的:理清在各种继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容。 2. 说明:虽然复制构造函数属于构造函数的一种,有共同的地方,但是也具有一定的特殊性,所以在总结它的性质时将它单独列出来了。 3. 单继承、多继承、虚继承,既然都属于继承,那么虽然有一定的区别,但还是相同点比较多。如果放在一块讲,但为了
2013-06-20 20:35:14 1054
原创 不要一厢情愿做公司的备胎-----《程序员笔试面试宝典》
以下是我的个人经验与教训,大公司的面经笔试我就不谈了,网上到处都是,我只是想说点求职过程中需要注意的地方。1.好学校不如好成绩笔试成绩的好坏直接决定你在一个面试官心目中的初期印象,而且很多面试顺序都是按照笔试成绩的顺序排列的,成绩排名越往后,面试官越是看不中你,要是你再迟到,那入围的机会就更加少之又少。淘宝的那次面试就把我安排在下午三点半进行,可是那天我参加了支付宝的笔试耽误了,赶到面试地
2013-06-20 20:25:26 2108
原创 笔试成绩好,不会被歧视-------《程序员笔试面试宝典》
要说给学弟学妹们留点建议,我想从找工作前的一些方面说起。毕竟找工作也就短短几个月,真正决定自己应聘结果的是最初的一些准备。当然,找工作确实也是个运气活,但是运气并非我们所能掌控的,所以做些我们能够做到的事情才是重要的。1.知己方能百战不殆首先我要说的是,自己一定想清楚自己要什么。有不少人读研究生,其实没有想清楚自己以后到底想要从事什么样的工作。和大部分人一样,我从一开始就是完全听老师的话,
2013-06-20 20:24:20 1451 1
原创 夯实基础-------《程序员笔试面试宝典》
1.万事不备我是从7月份开始准备找工作的,刚开始并不算太努力,断断续续,自己也比较松懈,所以只是零零散散地进行着复习,对于知识点的掌握也并不是非常精通。直到9月份重心才完全投入到找工作中,开始看一些专业书籍,如《算法导论》、《C专家编程》等。2.夯实基础谋出路对于面试笔试的准备,我觉得基础是根本,所以需要多学习一些基础知识,参考的图书有《算法导论》、《数据结构》、《深入Java虚拟机》
2013-06-20 20:23:27 1376
原创 走自己的路,让别人去说吧------《程序员笔试面试宝典》
这是我第一次找工作,现在把自己找工作的一些情况以及心得整理出来,一来对自己的经历作一个总结,二来可以为师弟师妹们提供一些信息。本人本科专业计算机科学与技术,毕业后直接保送了本校的计算机软件与理论专业读研,研究生阶段从事的基本都是软件类研发工作。1.无悔的选择在研二时,我就开始纠结于找工作还是继续念博士之间,但紧迫感不够。到了研三,不能再犹豫了,我做的决定就是先找工作,看看找的情况,毕竟找工
2013-06-20 20:22:45 1670
原创 假话全不说,真话不全说---------《程序员笔试面试宝典》
1.万事趁早我大概是研究生三年级新学期开学后开始准备找工作的,从后来的情况来看,我已经准备晚了,因为校招时间提前了半个多月。这也给了我一个教训:万事趁早,因为我们不能预知公司什么时候来招聘,只能自己提前做准备。准备太晚的结果就是9月中下旬的阿里巴巴、淘宝等公司的招聘全没赶上。2.不经一事,不长一智虽然我找工作的两条原则很早就确定了:去外企、搞技术,但是当校招开始时,我几乎还是逢公司必投
2013-06-20 20:21:49 2404 1
原创 心态决定一切-----《程序员笔试面试宝典》
1.抛砖引玉找工作的过程是综合实力较量的过程,一个好的offer背后凝聚着无数辛勤的汗水,需要勤奋、坚持、积累、付出。这里介绍一下自己找工作的经验,希望对师弟师妹们有所启发。需要注意的是,完全做到了这里提到的几点并不意味着你一定可以拿到一流的offer,我仅是抛砖引玉而已,如果想在找工作时得心应手,需要平时不断积累和总结,领悟其中的真谛。2.心态决定一切对于找工作,心态很重要。找工作之
2013-06-20 20:20:44 1194
原创 职场时能者的舞台-------《程序员笔试面试宝典》
关于应届毕业生如何求职这个问题,老实说,我的“经验”并不是很多,若干年以前,因为应聘前准备的比较充分,所以命中率比较高,虽然也拿到了几个不错的offer,但最终还是选择了现在这家企业。这么多年过去了,一路走来,感悟颇深,回过头来看当初求职这件事情,也是回味无穷。我认为一个非常有针对性的准备工作,包括心理准备与知识准备,对于计算机相关专业应届毕业生求职非常有用。首先,作为求职者,应当找准自己的位
2013-06-20 20:19:27 1016
原创 保持空杯心态------《程序员笔试面试宝典》
好友何昊拜托我一件事情,就是给当前程序员写一些关于求职的意见与建议,这着实有些为难我,并非我不愿意去做这件事情,而是因为本人入行虽然比较早,但入职却不太久,与一些资深的IT们相比,也只能算是初出茅庐,所以不敢妄自尊大,不过可以分享一下本人这些年来的几点粗浅体会,以起到抛砖引玉的效果。程序员,作为以技术主打的IT专业从业者,对于个人的发展,扎实的基本功将更有利于在行业里站稳脚跟,走得更远,发展前
2013-06-20 20:18:31 1538
原创 判断单链表是否存在环,判断两个链表是否相交问题详解(转载)
关键字: 算法【摘要】有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如果找到环的入口点?扩展:判断两个单链表是否相交,如果相交,给出相交的第一个点。有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形
2013-06-20 16:35:14 1087
原创 C++经典笔试题及参考答案-趋势科技
1、static有什么用途?(请至少说明两种)答案:1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用2、引用与
2013-06-20 13:52:51 3928 2
谢希仁 计算机网络习题解答
2013-06-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人