- 博客(133)
- 资源 (9)
- 收藏
- 关注
原创 经典排序算法综述 持续更新中
(如果对排序方法一点不清楚,可以先将步骤和每个方法下面的示例链接结合起来看更清楚,另外代码如有问题欢迎大家指正~) 直接/简单选择排序 Selection Sort步骤:1. 从未排序的数列中挑出最小元素,存放到排序数列的起始位置;2. 从剩余未排序数列中继续寻找最小元素,然后添至排序数列末尾;3. 以此类推,直到所有元素均添至排序数列。 void sw
2013-05-12 20:20:05 1145
转载 Advanced Debugging in Visual Studio
IntroductionMany of us developers do not look beyond the basic F9, F10, F11, F5 and Watch windows while debugging in Visual Studio. Due to this we end up wasting hours debugging an issue or simulati
2012-10-11 10:15:41 943
转载 C++ 全局对象 全局变量和局部变量 静态变量
讨论全局变量之前我们先要明白几个基本的概念: 1. 编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用gcc,makefile等工具在linux或者嵌入式下做开发工作的话,那么你可能
2012-06-15 18:39:55 26888 1
转载 linux编程 makefile “跟我一起写 Makefile” 陈皓
概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写m
2012-05-21 13:53:32 6231
转载 依赖注入和控制反转的理解,写的太好了。
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解。一、分享Iteye的开涛对Ioc的精彩讲解 首先要分享的是Iteye的开涛这位技术牛人
2017-12-28 23:07:07 1437
原创 spark基础操作(大家不用打开,我就是自己保存一下。。。)
启动start-dfs.shstart-yarn.sh更改主机名su rootcdhostname localhost看后台服务jps29456 NameNode29863 SecondaryNameNode30220 ResourceManager30718 Jps29548 DataNode30307 NodeManage
2017-12-26 23:06:41 464
原创 面试 智力题 概率题 游戏题
史密斯夫妇握手问题题目:史密斯夫妇邀请另外四对夫妇就餐,已知他们每个人都不和自己握手、不和自己的配偶握手、且不和同一个人握手一次以上。在大家见面握手寒暄后,史密斯问大家握手了几次,每个人的答案都不一样。问:史密斯太太握手几次解答:1. 总共10个人,每个人不与自己握手,不与配偶握手,不与同一个人握超过一次手,所以每个人最多握8次手,最少0次;
2013-09-26 21:14:03 2182
转载 新浪微博技术架构分析-转载
中国首届微博开发者大会在北京举行,这是国内微博行业的首场技术盛宴。作为国内微博市场的绝对领军者,新浪微博将在此次大会上公布一系列针对开发者的扶持政策,以期与第三方开发者联手推动微博行业的整体发展。图为微博平台首席架构师杨卫华演讲。大家下午好,在座的大部分都是技术开发者,技术开发者往往对微博这个产品非常关心。最晚的一次,是12点多收到一个邮件说想了解一下微博底层是怎么构架的。很多技术人员
2013-09-25 23:13:18 823
转载 秒杀多线程系列
第一篇 多线程笔试面试题汇总 多线程在笔试面试中经常出现,下面列出一些公司的多线程笔试面试题。首先是一些概念性的问答题,这些是多线程的基础知识,经常出现在面试中的第一轮面试(我参加2011年腾讯研究院实习生招聘时就被问到了几个概念性题目)。然后是一些选择题,这些一般在笔试时出现,虽然不是太难,但如果在选择题上花费大多时间无疑会对后面的编程题造成影响,因此必须迅速的解决
2013-09-08 18:37:54 797
转载 inline函数和宏的区别
#define TABLE_COMP(x) ((x)>0?(x):0) 就定义了一个宏。 为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序转移到函数所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。这种转移操作要求在转去执行前要保存现场并记忆执行的地址,转回后要恢复现场,并按原来保存地址继续执行。因此,函数调用要有一定
2013-09-08 16:34:06 858
转载 C/C++中各种类型int、long、double、char表示范围(最大最小值)
#include#include#include using namespace std;int main(){ cout << "type: \t\t" << "************size**************"<< endl; cout << "bool: \t\t" << "所占字节数:" << sizeof(bool); cout ::ma
2013-09-03 16:26:36 880
原创 标准非STL容器 : bitset
文章后面有很好的内容,重点总结一下是:1. bitset, vector 以及 deque的区别;2. bitset在栈中分配内存,vector/deque在堆中分配内存,所以bitset过大时要小心栈溢出。先转一篇介绍bitset使用的文章:http://www.cnblogs.com/lvpengms/archive/2010/04/10/1708836.html最近用
2013-09-02 10:41:50 1213
原创 C++ Placement New
先看一个题目:#include #include using namespace std;struct Base { int j; virtual void f() { printf("B\n"); } };struct Derived: Base { void f() { printf("D\n"); }};void fooBar(){
2013-08-29 16:16:20 733
原创 海量数据处理问题 解决方法总结
一、分而治之/Hash映射 + Hash统计 + 堆/快速/归并排序分而治之:通过hash将大文件分为小文件,大数据分为小数据等;hash统计:整合每个小文件,筛选重复数据,记录大小; (可用到map / hash_map / set / hash_set等)归并:整合每个小文件的hash统计结果,得到最终结果。寻找热门查询,300万个查询字符串中统计最热门的10个查询
2013-08-28 14:40:32 1402
转载 stl string常用函数
string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常st
2013-07-11 13:17:51 641
转载 SCons的使用
一、SConstruct File {{{1 1. Sconstruct 文件 是scons用来控制编译的文件 2. Sconstruct 文件 是一个python脚本 3. SConstruct 文件 是一个类似于makefile一样的东西, 告诉 scons做什么,而不是严格的规定soncs做这件事的步骤二、scons选项 {{{1 -c
2013-07-11 13:14:11 988
转载 学习SVN版本控制与恢复删除
1. 版本控制介绍 1.1. 什么是版本控制版本控制系统用于保存编写开发应用程序时的文档的各个修订版(revision)。版本控制也称作Revision Control System(RCS)。名词解释:修订版(revision):可以认为是某个文件在其生命周期内各个保存的快照,每个快照和一个时间区间对应。版本库(Repository):存放修订版的
2013-07-11 13:10:24 1327
转载 VIM技巧之去除代码行号并缩进代码
从网上找源代码时经常会发现代码虽然排版很好,但是前面带着行号,直接复制粘贴得将前面的行号去掉才能编译,而更糟糕的是前面带行号,而代码又没排版,简直是噩梦。在VIM中可以轻易地解决这个问题。 这里将网上的一段代码粘贴到VIM中时的截图:图1 网上的代码粘贴到VIM中 是不是相当糟糕,使用正则表达式替换(前头的:表示输入模式):%
2013-07-08 16:22:34 817
转载 Ubuntu Linux 环境变量PATH设置
Ubuntu Linux系统环境变量配置文件: /etc/profile : 在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。 /etc /environment : 在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变量。 ~/.profile : 在登录时用到
2013-06-28 16:16:26 778
转载 Installing and Running Google App Engine on a Linux System: Appendix D - Using Google App Engine
Installing and Running Google App Engine on a Linux System: Appendix D - Using Google App Engineby Charles SeveranceMarc AlierJordi Piguillem PochPROD: The name
2013-06-28 15:51:50 1135
原创 C++ sizeof 操作符的用法总结
在VC中,sizeof有着许多的用法,而且很容易引起一些错误。下面根据sizeof后面的参数对sizeof的用法做个总结。A.参数为数据类型或者为一般变量:例如sizeof(int),sizeof(long)等等。这种情况要注意的是不同系统系统或者不同编译器得到的结果可能是不同的。例如int类型在16位系统中占2个字节,在32位系统中占4个字节。B.参数为数组或
2013-06-17 16:23:08 930
转载 C++ 自定义结构体和类 内存对齐
为什么要提出内存对齐?比如这么一种处理器,它每次读写内存的时候都从某个8倍数的地址开始,一次读出或写入8个字节的数据,假如软件能保证double类型的数据都从8倍数地址开始,那么读或写一个double类型数据就只需要一次内存操作。否则,我们就可能需要两次内存操作才能完成这个动作,因为数据或许恰好横跨在两个符合对齐要求的8字节内存块上。(在有谢处理器上内存不对齐的话可能会出现错误)一些例
2013-06-17 16:21:33 970
原创 算法复杂度分析之主方法 Master Method
最近看stanford的算法导论公开课,讲到分治法的时候提到了主方法,可以很快速的分析算法的时间复杂度。对于一个递归实现的分治算法,其时间复杂度表示为:T(n) = aT(n/b)+h(n)其中,a>=1; b>1; h(n)是不参与递归部分的时间复杂度。比较n^log b (a)与Θ(h(n)) 的大小(Θ的含义和“等于”类似,而大O的含义和“小于等于”类似,感觉好像这里
2013-06-17 15:24:15 4745
原创 机器学习算法 之 K-Means聚类
K-Means是一种最经典也是使用最广泛的聚类方法。k-means 算法的工作过程说明如下:首先从n个数据对象任意选择k 个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。K-Means的思想很简单,对于一个聚类
2013-06-03 15:41:56 1293
原创 模式识别/机器学习/图像视频/ 常见概念科普
sift 特征提取:http://www.cnblogs.com/cfantaisie/archive/2011/06/14/2080917.htmlHOG 特征:http://blog.sina.com.cn/s/blog_9f4bc8e30101672y.htmlNMF:Non-negative Matrix Factorization,非负矩阵分解:
2013-06-03 15:33:13 1426
转载 C/C++中的Split函数
strtok()用来将字符串分割成一个个片段。参数str指向欲分割的字符串,参数delimiters则为分割字符串,当strtok()在参数str的字符串中发现到参数delimiters的分割字符时则会将该字符改为'\0'字符。在第一次调用时,strtok()必需给予参数str字符串,往后的调用则将参数str设置成NULL。C/C++中的Split函数是strtok()其函数原型如
2013-05-29 16:41:11 914
原创 Python常用文件/文件夹操作
首先引入模块:import os判断是否存在:os.path.exists(‘filename/dirname’)//文件/文件夹都可以判断类型:os.path.isdir(‘filename')//判断是否是目录os.path.isfile(‘filename') //判断是否是文件os.path.islink(‘filename') //判断是否
2013-05-23 16:51:41 1129
原创 Python 在列表list中查找特定的值
def find_in_list(myList,value): try: pos=-1 for v in range(0,len(myList)): if value==myList[v]: pos=v break; return pos exce
2013-05-23 15:41:18 6169
转载 浅谈C/C++的浮点数在内存中的存储方式
任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二进制表示形式为00000100 10000100。则在Intel CPU架构的系统中,存放方式为 10000100(低地址单元) 00000100(高地址单元),因为Intel CPU的架构是小端模式。但是对于浮点数在内存是如何存储的?目前所有的C/C++编译器都是采用IEEE所制定的标准浮点格式,即二进制科学表示法
2013-05-09 09:55:49 621
转载 进程与线程的一个简单解释
进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。
2013-05-08 16:42:29 667
转载 设计模式——创建型设计模式总结(简单工厂、普通工厂、抽象工厂、建造者、原型和单例)
创建型设计模式总结(转载请注明来源 http://www.cnblogs.com/jerry19880126/)创建型设计模式包括简单工厂模式,普通工厂模式,抽象工厂模式,建造者模式,原型模式和最简单的单例模式。 简单工厂模式(Simple Factory) 从UML图中可以看出,(UML类图关系可参考 http://blog.csdn.ne
2013-04-26 17:28:24 745
转载 C++中接口与实现分离的技术
在用C++写要导出类的库时,我们经常只想暴露接口,而隐藏类的实现细节。也就是说我们提供的头文件里只提供要暴露的公共成员函数的声明,类的其他所有信息都不会在这个头文件里面显示出来。这个时候就要用到接口与实现分离的技术。 下面用一个最简单的例子来说明。 类ClxExp是我们要导出的类,其中有一个私有成员变量是ClxTest类的对象,各个文件内容如下: lxTest.h文件
2013-04-26 11:07:41 649
转载 UML类图:六大关系(泛化,实现,依赖,关联,聚合,组合)
UML类图 使用UML类图,我们可以表示出类的静态内容以及它们之间的关系。在类图中,我们可以显示出类的成员变量和成员函数,以及类之间的继承和引用关系。简而言之,我们可以描绘出类之间所有源码级的依赖关系。 在UML中一个类表示为如下图:类图中变量和函数名前面的符号。短横线(-)表示private;井号(#)表示protected;加号(+)表示public; 变量和函数参
2013-04-26 10:15:37 2296
转载 读书笔记_深入理解计算机系统_第1章_计算机系统漫游 (代码编译链接详细过程)
第一章:计算机系统漫游信息是什么?昨天和同学走的时候,正好就说起了这个话题,“信息就是概率”,同学如是说。那么信息在计算机里是什么呢?总不能还说是概率吧,计算机可不懂什么概率。在本书第一章第一页的标题上赫然写着“信息就是位+上下文”。什么是位?位就是比特,就是二进制。计算机里没有概率,有的只是一连串0或1的序列。那什么是上下文?这个跟我们经常在英文阅读理解里遇到的“上下
2013-04-25 15:14:40 1293
原创 static作用:静态变量的生存周期和作用域
首先要理解生存周期与作用域的区别:生存周期: 变量从定义到销毁的时间范围。存放在全局数据区的变量的生存周期存在于整个程序运行期间,而存放在栈中的数据则随着函数等的作用域结束导致出栈而销毁,除了静态变量之外的局部变量都存放于栈中。作用域: 变量的可见代码域(块作用域,函数作用域,类作用域,程序全局作用域)。static变量是指静态的变量,不管是在全局还是局部声明的static变量
2013-04-24 15:31:57 11272
转载 static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较
隐式转换(implicit conversion)short a=2000;int b;b=a;short是两字节,int是四字节,由short型转成int型是宽化转换(bit位数增多),编译器没有warning,如下图所示。宽化转换(如char到int,int到long long,int到float,float到double,int到double等)构成隐式转换,
2013-04-24 10:21:35 659
转载 关于fork()返回值
fork简介: fork英文原意是“分岔,分支”的意思,而在操作系统中,乃是著名的Unix(或类Unix,如Linux,Minix)中用于创建子进程的系统调用。 【NOTE1】 fork () 的作用是什么?换句话说,你用 fork () 的目的是什么? ――是为了产生一个新的进程,地球人都知道 :)产生一个什么样的进程? ――和你本来调用 fork (
2013-04-22 16:10:27 733
Delta物业管理系统网站 J2EE网站源码与UML文档
2012-06-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人