自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(55)
  • 收藏
  • 关注

原创 cocos2d-x学习笔记

源文件不能放在中文l

2014-06-25 11:53:43 625

原创 01背包问题【动态规划】

问题:假设有n个物品,每个物品都是有重量的,同时每个物品也是有价值的,要求把这些物品放到一个背包中,这个背包的载重量是有限制的,怎么使得背包里面的物品总价值最大?符号表示:N:物品个数W:背包载重量w[i]:物品i的重量(1v[i]:物品i的价值(1c[i, j]:到物品i为止,背包重量限制为j的最优解(1分析:最优解结构:对于物品i,只

2014-06-24 15:21:35 939

原创 【The beauty of math】无限循环小数转分数

0.333333... = 1/3推导过程:设x=0.33333310x=3.333333(循环体的数字个数为1)10x-x=3x=1/3所以计算的核心在于确定无限循环的循环体的数字个数。

2014-05-10 23:43:38 967

原创 英语思维

语言是一种世界观:汉语很直观,在描述一件事物的时候倾向于用身体能感受到的表象或动作去描述;英语很客观,倾向于透过现象描述事物的本质,事物的作用。例句分析Help me up, Let me see if i can bear weight.(扶我一把,看我还能不能站起来)中文的站很笼统,只体现出来站的动作,不能体现站的原因(to see

2013-06-23 12:39:30 2143

原创 排序算法

选择排序1.直接选择排序时间复杂度:O(N^2)空间复杂度:O(1)算法思想:进行N趟排序,每一趟都从未排序序列中选择一个最大或最小的值放入排序序列中稳定性:不稳定templateint min_key(KeyType A[], int low, int high) //从数据集合中选择最小的关键字,并返回数组下标{ int min_pos = low; for(i

2012-10-02 19:07:24 728

原创 计算机网络笔记整理

应用层应用层协议定义了在不同端系统的应用程序进程如何进行通信,即相互传递报文:交换的报文类型:如请求报文和响应报文;各种报文类型的语法:如报文中各个关键字段及其详细描述;报文的语义:即包含在字段中的信息的含义;进程何时、如何发送报文及对报文进行响应的规则。HTTP(Hypertext Transfer Protocol)使用TCP做为传输层协议;不保存客户机的任

2012-10-01 12:02:20 637

原创 图的概念

连通图:无向图中每一对顶点间都存在一条路径强连通图:有向图中每一对顶点间都存在一条路径弱连通图:有向图去掉边的方向后可以变成连通图完全图:每一对顶点间都存在一条边邻接矩阵:用一个二维数组來表示图邻接表:用一个数组存储图的结点,每个结点保存一个链表,链表中存放所有邻接的顶点拓扑排序:对有向无圈图的一种排序,它使得如果存在一条vi到vj的路径,那么在排序中vj出现在vi的后面。

2012-09-25 20:18:52 653

原创 深入理解计算机系统之笔记

chap4.处理器体系结构指令执行阶段取指(fetch):从存储器中读取指令字节,地址为PC的值。从指令中抽取出指令指示符字节的两个四位部分,称为icode(指令代码)和ifun(指令功能)。它可能取出一个寄存器指示符字节,指明一个或两个寄存器操作数指示符rA和rB。它还可能取出一个四字节常数字valC。它按顺序方式计算下一条指令的地址valP,valP等于PC的值加上已取指令的长

2012-09-25 14:35:54 790

原创 B-tree(C++实现)

定义一棵M(M>2)阶B-tree应该满足以下定义:每个结点的孩子结点个数不超过M个;非根结点的孩子结点个数不少于ceiling(M/2)个;N个结点关键字对应N+1个孩子结点;假设结点有关键件key1、key2、...、keyN,则有孩子结点指针child1、child2、...、childN、child(N+1),且有MaxKeyValue(child1)结点中存有关键字和

2012-09-16 16:41:34 4999

原创 B+树(C++实现)

定义:一棵M(M>2)阶的B+树满足以下定义:1.B+树中包含两种类型的结点:内结点和叶子结点。内结点存有关键字和孩子结点的指针,叶子结点存有关键字和数据;2.每一个关键字都会在叶子结点中出现,叶子结点按照关键字的大小排序,叶子结点中会存有指向兄弟结点的指针;3.一棵B+树一般存有两个指针:一个指向根结点,一个指向存有最小关键字的叶子结点;4.每个内结点至多

2012-09-15 16:28:50 24119 14

转载 函数式编程初探

转载地址:http://www.ruanyifeng.com/blog/2012/04/functional_programming.html诞生50多年之后,函数式编程(functional programming)开始获得越来越多的关注。不仅最古老的函数式语言Lisp重获青春,而且新的函数式语言层出不穷,比如Erlang、clojure、Scala、F#等等。目

2012-07-18 10:36:53 1286 3

原创 lua学习笔记

lua特性总结:lua可以多重赋值,同时函数可以有多个返回值lua函数是一种first-class valuelua函数可以嵌套,closure的概念元表、元方法注释--:行注释--[[ ]]: 块注释小技巧:注释代码:--[[ 代码--]]重新启用这段代码:---[[ 代码--]]全局变量:将一个值赋予一个全局变量就创建了

2012-07-17 16:49:07 1426

转载 Vim 练级攻略

转载地址:http://coolshell.cn/articles/5426.htmlvimi游戏地址:http://vim-adventures.com/vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手

2012-06-12 19:18:58 987 1

原创 SGI STL 空间配置器(allocator)源码剖析

空间配置器的作用我们知道,stl中的数据都是放到容器中的,容器需要存储空间,空间配置器就是负责容器存储空间的分配、回收等一系列内存操作。STL标准规范中描述的allocator模版类的必要声明:Constructors// Constructors used to create allocator objects.allocator(); // Default constr

2012-06-06 17:38:50 2878 2

原创 瞬间感悟

语言的三要素:token(符号)、grammar(语法)、semantic(语义)按照语言的语法(grammar),将语言提供的token序列组合成语句(sentence),而语句的内在表现则是语义(semantic),而语义则是我们想通过这门语言表达的意思。举个实例:“Good bye.”,good、bye是英语语言的token,这句话符合英语的语法,“再见”是这句话的语义。

2012-05-30 19:03:18 719

原创 内存对齐之深度探索

(废话:最近接触到内存对齐概念,针对内存对齐的规则,我在vc中一一进行了验证,发现编译器确实对我的数据进行了内存对齐。我便知道内存对齐必定是有它的优点所在,是什么呢?我找的资料都是说内存对齐可以提高内存访问效率、可移植到不同的平台等等,但是为什么会这样呢,没有一个清晰的解释。下面便是我多天努力的成果!)编译器为什么要替我们内存对齐?学了计算机组成原理,了解了内存的基本单元是

2012-05-29 14:22:58 2448 4

原创 The basic principles of design pattern

Design to interfaceFind the varies and encapsulate themFavor composition than inheritance

2012-05-27 12:07:59 812

原创 Chap2-构造函数语意学

如果一个类没有任何constructor,那么会有一个default constructor被隐式的声明出来,一个implicit default constructor将是一个trivial(无用的)constructor。但是在某些情况下,implicit default constructor将是一个nontrivial constructor,下面一一讨论:由编译器合成nontrivi

2012-05-26 11:17:25 564

原创 C++类overlode、override和overwrite详细解释

overload(重载),即函数重载:在同一个类中;函数名字相同;函数参数不同(类型不同、数量不同,两者满足其一即可);不以返回值类型不同作为函数重载的条件。override(覆盖),用于实现C++中多态:分别位于父类和子类中;子类改写父类中的virtual方法;与父类中的函数原型相同。overwrite(重写):与overload类似,但是范围不同

2012-05-25 20:01:16 2129 1

原创 char1-关于对象

key points:C++类中包含两种类型的数据成员:static、nonstaticC++类中包含三种类型的成员函数:static、nonstatic、virtualC++对象模型:nonstatic data members被配置于每一个类对象中,static data members被存放在个别的类对象之外。static和nonstatic function members也存

2012-05-25 17:10:16 748

转载 [c&cpp][memory] 内存对齐分配策略(含位域模式)

转载地址:http://www.cnblogs.com/alex-tech/archive/2011/03/24/1993856.html1:内存对齐定义:     现在使用的计算机中内存空间都是按照字节划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但是实际上计算机系统对于基本数据类型在内存中的存放位置都有限制,要求这些数据存储首地址是某个数K的倍数,这样

2012-05-25 11:40:43 1232

原创 大端、小端问题详解

参考博客:http://www.cppblog.com/colorful/archive/2012/05/17/175182.html在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正确的编/译码从而导致通信失

2012-05-25 10:06:51 1455

转载 .h头文件 .lib库文件 .dll动态链接库文件关系

.h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的。附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件。如果要完成源代码的编译和链接,有头文件和lib就够了。如果也使动态连接的程序运行起来,有dll就够了。在开发和调试阶段,当然最好都有。.h .lib .dll三者的关系是:H文件作用是:声明函数接口DLL文件作用是: 函

2012-05-21 20:52:40 2712

转载 谈谈程序设计语言、编译器和开发环境之间的关系

转载地址:http://computer.eefocus.com/lingyue/blog/09-03/167608_03695.html许多初学者都会对这三个概念区分不清,应该说这三个概念是完全不同的,不能混为一谈。在本文中,我就尽我最大的能力来讲讲这三个概念以及他们之间的关系。首先说程序设计语言,它同人类的自然语言一样也是一个语言,并且它是自然语言的一个子集。大家都知道自然语言

2012-05-12 15:34:02 4007

原创 C++中extern “C”含义深层探索

参考文章:http://www.cppblog.com/Macaulish/archive/2008/06/17/53689.html跪求指出错误!Why need it?extern "C"的根本目的是为了实现C和C++的混合编程。The principle根本原因在于C++和C中的函数的编译方式不同。如函数void foo(int n);被C编译器编译后

2012-05-12 14:08:01 792

原创 内存状态查询函数

获取当前系统信息:void WINAPI GetSystemInfo(_out LPSYSTEM_INFO lpSystemInfo)实例代码:#include #include using namespace std;void main(){ SYSTEM_INFO sysInfo; GetSystemInfo(&sysInfo); cout<<"Page Size: "

2012-05-04 15:58:54 2921

原创 位图排序

利用位图对数据进行排序。前提:待排数据不能有重复,且要能估计出待排数据值的上界(越精确效率越高)时间复杂度:设待排数据值上界为M,待排数据量为N,则时间复杂度为O(2M+N)c++实现代码:#ifndef BITMAP_SORT_H#define BITMAP_SORT_H//sort the array by bitmap, it demand all elements o

2012-05-04 12:55:56 692

原创 windows核心编程知识点

内存管理进程虚拟地址空间:分区、地址页的状态内存映射文件内存数据对齐写时复制虚拟内存页交换文件

2012-04-30 13:42:44 829

原创 git+github个人使用心得总结(持续更新)

小菜初学git,下面的都是个人总结,希望各位能不吝指教,多多指出我理解上的偏差,谢谢!git入门书籍:http://progit.org/book/版本控制系统,以前了解过cvs、svn,最近似乎git大有取代前者之势。经过初步的了解,才知道git和以前的版本控制系统有许多本质上的差别。版本控制系统的发展过程:单机版本控制系统(offline) ——集成式版本控制系统(online)—

2012-04-23 14:51:56 7709

原创 基于8086cpu的汇编语言学习总结

寄存器通用寄存器:ax、bx、cx、dx。在8086cpu中都是16位的,可拆分成两个8位的来用,如ax可分成al(低8位)、ah(高8位)段寄存器:cs(code segment)、ds(data segment)、ss(stack segment)、es(external segment)可用于内存单元寻址的寄存器:bx、bp、di、si,其中bx、di、si段地址默认在ds中,b

2012-04-20 16:34:05 3712

原创 大牛们的博客网址收藏

数据结构与算法http://blog.csdn.net/v_july_v/article/details/6543438http://www.cppblog.com/converse/archive/2009/10/31/99886.htmlwindows内存管理http://blog.chinaunix.net/uid-22562725-id-307986

2012-04-20 15:19:15 1219

原创 B树的原理与实现(C++)

B树的定义一棵B树T是具有如下性质的有根树(根为root[T]):1)每个结点x有如下域:      a)n[x],当前存储在结点x中的关键字个数;       b)n[x]个关键字本身,以非降序存放,因此key1 [x]≤key2[x]≤…≤keyn[x][x];      c)leaf[x],是一个布尔值,如果x是叶子结点的话,则它为TRUE,如果x为一个内结点,则它为FA

2012-04-20 13:12:33 16525 5

转载 Google C++编程风格指南

Google C++编程风格指南(一)背景Google的开源项目大多使用C++开发。每一个C++程序员也都知道,C++具有很多强大的语言特性,但这种强大不可避免的导致它的复杂,这种复杂会使得代码更易于出现bug、难于阅读和维护。本指南的目的是通过详细阐述在C++编码时要怎样写、不要怎样写来规避其复杂性。这些规则可在允许代码有效使用C++语言特性的同时使其易于管理。风格,也被视为可读

2012-04-19 16:27:56 1272

原创 个人面试经历

第一次面试经历:公司:2012腾讯暑假实习生岗位:软件开发-游戏开发方向过程:笔试——一面——二面(被刷,原因是水平不够)笔试主要考的是C++、算法和数据结构的基础,还有一些数学题目,比如排列组合方面的。我的笔试成绩是59,应该算是中上等。一面首先是惯例-自我介绍,我当时非常紧张,不过面试官很随和,让我不用紧张,很感谢他。接下来面试官根据我的自我介绍、简历来

2012-04-19 12:48:12 575 1

转载 MySQL索引背后的数据结构及算法原理

摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分

2012-04-12 17:16:45 472

转载 漫谈数据库索引

一、引言对数据库索引的关注从未淡出我的们的讨论,那么数据库索引是什么样的?聚集索引与非聚集索引有什么不同?希望本文对各位同仁有一定的帮助。有不少存疑的地方,诚心希望各位不吝赐教指正,共同进步。[最近首页之争沸沸扬扬,也不知道这个放在这合适么,苦劳?功劳?……] 二、B-Tree我们常见的数据库系统,其索引使用的数据结构多是B-Tree或者B+Tree。例如,MsSql使用的是B

2012-04-12 17:14:02 389

原创 磁盘存取原理

名词解释:磁道:盘片上的同心圆环柱面:所有半径相同的同心圆环组成一个柱面扇区:磁道沿半径线划分成一个个小的段,每个段就叫做一个扇区寻道:移动磁头到目标磁道旋转:旋转磁盘,将目标扇区旋转到磁头下局部性原理:当一个数据被用到时,其附近的数据也通常会马上被使用页:页是计算机管理存储器的逻辑块,硬件及操作系统往往将主存和磁盘存储区分割为连续的大小相等的块,每个存储块称为一页(页的大小通常为4K

2012-04-12 16:59:55 1532

转载 数据库中索引原理(超经典)

实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几

2012-04-12 15:19:43 641 1

原创 计划

记录想做的事情,专注于少数几件事情我正在做的SRTP:内存数据库记单词:每天一个listC++底层机制C语言编译原理操作系统windows核心编程计算机体系结构我想做的学习嵌入式学习STL学习c语言学习linux学习TCP/IP协议、网络编程学习linux内核学习ios开发学习计算机体系结构学习编译原理想看的书籍inside of C++ o

2012-04-12 12:27:50 463 2

转载 堆和栈的区别(转过无数次的文章)

一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。

2012-03-30 17:09:46 419

空空如也

空空如也

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

TA关注的人

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