自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qeesung的专栏

:(){:|:&};:

  • 博客(64)
  • 资源 (16)
  • 收藏
  • 关注

原创 CSS Float nine rules

CSS Float nine rulesw3 css float nine rulesCSS Float Rule1CSS Float Rule2CSS Float Rule3CSS Float Rule4CSS Float Rule5CSS Float Rule6CSS Float Rule7CSS Float Rule8CSS Float Rule9finally参考文章

2016-07-10 19:46:39 5824 1

原创 RabbitMQ 基础教程(2) - Work Queue

RabbitMQ 基础教程(2) - Work Queue 注:本文是对众多博客的学习和总结,可能存在理解错误。请带着怀疑的眼光,同时如果有错误希望能指出。 如果你喜欢我的文章,可以关注我的私人博客:http://blog-qeesung.rhcloud.com/在上一篇文章 RabbitMQ 基础教程(1) - Hello World 中,我们已经简单的介绍了RabbitMQ以及如

2016-06-04 23:55:31 14679

原创 RabbitMQ 基础教程(1) - Hello World

RabbitMQ 基础教程(1) - Hello World 注:本文是对众多博客的学习和总结,可能存在理解错误。请带着怀疑的眼光,同时如果有错误希望能指出。 如果你喜欢我的文章,可以关注我的私人博客:http://blog-qeesung.rhcloud.com/RabbitMQ是一个message broker,消息的生产者(producer)负责生产消息,然后将消息传入传入qu

2016-05-29 14:12:29 11425

原创 nodejs 异步I/O和事件驱动

nodejs 异步IO和事件驱动几个例子example 1example 2example 3example 4example 5异步IOasynchronous IO阻塞IO 和 非阻塞IO同步IO 和 异步IO事件驱动线程驱动和事件驱动nodejs的事件驱动和异步IO事件驱动模型异步IO问题答案nodejs 异步I/O和事件驱动 注:本文是对众多博客的学习和总

2016-05-22 09:51:13 9639

原创 nodejs q模块

nodejs module qq模块promiseq模块的安装promise的使用then 函数流式操作组合操作Promise的创建Using QfcallUsing DeferredsUsing QPromise实际例子测试服务器并行请求串行请求延时操作接触nodejs时间不长,如果有所纰漏,请大家批评指正nodejs module q众所周知,nodejs是

2016-05-15 22:10:37 16423 1

原创 继续征程

继续征程看了看自己最后一次写的博客,已经是去年七月份了,算了一算,从自己毕业(工作)以后就再也没有写过博客了,虽然零零散散的学了一些技术,知识虽然学了,但是缺乏自己的理解,会用,却做不到触类旁通。彷徨了好一阵,决定继续写博客,总结自己在工作中的一些心得体会。工作虽忙,但也还是要保证一周一篇高质量博文。新的领域毕业以后的工作内容和之前学校学的东西有很大的不同,在学校的时候主要是底层方面的东西,什么单片

2016-04-17 20:59:44 1855 1

原创 散列表之完美散列

散列表之完美散列完美散列perfect hashing两级散列法gperf工具来自动生成完美散列函数gperf的安装gperf关键字文件的书写格式gperf应用举例注意本文中的所有代码你都可以在这里:https://github.com/qeesung/algorithm/tree/master/chapter11/11-5/gperf(这里会及时更新)或者是这里:http://dow

2015-07-27 11:56:54 5649

原创 Vim技巧之四大模式_可视模式

Vim技巧之四大模式_可视模式什么是可视模式如何选中一块区域如何快速选中目标区域如何重复选择目标区域如何在选中中切换选择模式如何对选中的区域进行操作可视命令的重复最好使用操作符命令而不是可视命令Vim技巧之四大模式_可视模式在前面的两篇文章《Vim技巧之四大模式_插入模式》和《 Vim技巧之四大模式_普通模式》我们已经介绍了插入模式和普通模式里面的技巧,下面我们将继续介绍四大模式之一

2015-07-20 00:15:02 15883 3

原创 Python学习笔记_数字

Python学习笔记_数字整形布尔型标准整形长整形双精度浮点型复数复数的内建特性操作符混合模式操作符标准类型的操作符算数操作符除法位操作符只适用于整形内建函数与工厂函数标准类型函数数字类型函数其他数字类型布尔数十进制浮点数随机数Python学习笔记_数字整形布尔型布尔型的取值范围只有两个值,True和False标准整形Python的标准整形就好比是32位的i

2015-07-20 00:00:53 1043

原创 散列表之开放定址法

散列表之开放定址法散列表的基本操作插入操作_INSERT查找操作_SEARCH删除操作_DELETE散列表的探查方法probe methods散列表探查的定义线性探查二次探查双重散列总结注意: 本文中所有的代码你可以在这里:https://github.com/qeesung/algorithm/tree/master/chapter11/11-4/openAddressing

2015-07-12 00:13:46 11458

原创 Vim技巧之四大模式_插入模式

Vim技巧之四大模式_插入模式在插入模式中及时更正错误插入-普通模式在插入模式模式下面直接粘贴指定寄存器的内容插入模式中做运算用字符编码插入非常用字符替换已有的文本Vim技巧之四大模式_插入模式在前面的文章《Vim技巧之四大模式_普通模式》中我们提到过四大模式之一的普通模式,今天我们继续讲讲Vim四大模式里面的插入模式普通模式好比是发动一个技能,而插入模式则好比是一般的物理攻击,但是就算

2015-07-08 00:16:45 20177

原创 Python学习笔记_Python对象

Python学习笔记_Python对象Python对象标准类型其他内建类型类型对象和type类型对象Python的Null对象None标准类型操作符对象值的比较对象身份比较布尔类型标准类型的内建函数typeObjcmpobj1 obj2strobj reprobjtypeobj isinstanceobj标准类型的分类存储模型更新模型访问模型不支持的类型P

2015-07-06 20:45:36 1161

原创 Vim技巧之四大模式_普通模式

Vim技巧之四大模式_普通模式一见不钟情的普通模式普通模式下面的强悍操作什么是操作符什么是动作命令误操作怎么办那种操作更划算普通模式下的神秘大招Vim技巧之四大模式_普通模式众所周知,vim里面最具特色的东西就是它可以切换模式,那什么是模式呢?可以简单的理解为在不同的模式下面按相同的键而得到不同的效果。比如Vim在插入模式下面连按两次d,那么就会在光标位置插入两个字母d,如果在普通模式

2015-07-06 00:27:39 5865 3

原创 回头一望,继续向前

懵懂的大一瞎折腾的大二找到方向的大三将要离别的大四总结大学四年的就这样结束了,没想到就这么快的结束了,不舍住了四年的舍友,不舍三舍结盟的829,830,831的小伙伴们,不舍在球场上挥洒汗水的三班足球队,但还是走了,此去经年,不知相见又是何时,想见时只希望还能把酒言欢当初报志愿时,还以为自动化是造机器人神马的,听听就感觉高大山,就算不是造机器人,造个火箭坦克神马的也应该不在话下吧,于是就抱着

2015-07-04 22:06:59 1192 5

原创 Python学习笔记_Python基础

Python 基础语句和语法注释继续代码组代码的缩进在一行书写多个语句 模块变量赋值赋值操作符增量赋值多重赋值多元赋值python编写的基本风格模块的结构和布局内存管理变量定义引用计数增加引用计数减少引用计数del语句Python 基础语句和语法注释python中用#号进行注释继续如果一个语句需要跨行,那么需要用\来连接两个跨行的语句if name == '

2015-06-26 18:30:27 1154

原创 散列表之散列函数

散列表之散列函数什么是好的散列函数将关键字转化为自然数散列函数的三种设计方法除法散列法乘法散列法全域散列法散列表之散列函数我们在之前的文章《散列表之链接法》中已经提到过,散列函数是散列表的一个难点,一个好的散列可以很大程度上提升散列表的查找和删除操作的速度,而一个设计差劲的散列表的,查找和删除操作的运行时间将和链式链表一样,将达到O(n)O(n)。所以设计一个表现良好的散列函数尤为重要!

2015-06-26 13:38:20 4122 1

原创 Vim技巧之重复

Vim技巧之重复Vim重复的类型文本改变重复行内查找重复全文查找重复文本重复替换宏录制重复Vim技巧之重复当我们用vim编辑文本的时候,不免会进行一些重复的操作,当我们想要重复上次的操作,难道还要重复一遍相同的操作么?这样不免会浪费时间。于是vim就将你上次进行的一些操作记录在vim的寄存器里,当你想要重复上次进行的操作的时候,直接点击快捷键就可以了。Vim重复的类型vim中有五种基本的

2015-06-14 23:41:38 20701 2

原创 散列表之链接法

散列表之链接法散列表的定义散列表的基本操作散列表的编码实现散列表的设计主测试文件编译运行结论注意: 本文中的所有代码你可以在这里 https://github.com/qeesung/algorithm/tree/master/chapter11/11-2/hashTable(这里会及时更新) 或者这里 http://download.csdn.net/detail/ii124

2015-06-14 12:38:37 3762

原创 散列表之直接寻址表

散列表之直接寻址表直接寻址表的定义直接寻址表的操作直接寻址表的代码实现dataNode的定义直接寻址表的定义测试文件编译运行总结注意: 本文中的所有代码你可以在这里: https://github.com/qeesung/algorithm/tree/master/chapter11/11-1/directAddr(这里的会及时更新) 或者这里: http://downloa

2015-06-13 13:10:34 4741 1

原创 链表_LINKLIST

链表_LINKLIST链表的结构链表节点_LinkNode链表节点连接链表的基本操作节点的插入_INSERTNODE节点的删除_REMOVENODE访问链表元素_VISITNODE链表基本操作接口_INTERFACE链表的编码实现链表总结本文中的所有代码都可以在这里: https://github.com/qeesung/algorithm/tree/master/chapt

2015-06-05 20:44:50 2927

原创 队列_QUEUE

队列_QUEUE队列的基本操作队列的代码实现本文中的所有代码你可以在这里:https://github.com/qeesung/algorithm/tree/master/chapter10/10-1/队列或者是这里:http://download.csdn.net/detail/ii1245712564/8753843找到!队列_QUEUE队列_QUEUE是一种特殊的线性表,特殊之处在于它只允

2015-05-30 15:34:52 1270

转载 vim map映射

MAP*map.txt* For Vim version 7.4. 最后更新: 2013年8月 VIM 参考手册 作者: Bram Moolenaar 译者: con http://vimcdoc.

2015-05-29 19:51:24 3444

原创 栈_STACK的实现

栈_STACK栈的基本操作栈的代码实现栈的C语言实现栈的C实现结论本文中的完整代码你可以在这里: https://github.com/qeesung/algorithm/tree/master/chapter10/10-1/栈或者这里:顺序栈的实现:http://download.csdn.net/detail/ii1245712564/8744663 链式栈的实现:http://

2015-05-29 11:58:22 1662

原创 选择算法总结

选择算法选择算法之选取最大数或最小数选取最大数或最小数代码实现选择算法之选取最大数和最小数选取最大数和最小数代码实现选取最大数和最小数代码优化快速选择算法快速选择算法分析快速选择算法编码实现快速选择算法代码优化BFPRT选择算法BFPRT选择算法主元选择BFPRT选择算法性能分析BFPRT选择算法代码实现注:本文中的所有代码都在这里选择算法选择算法就是用来解决在一堆数里面选

2015-05-24 15:13:33 9701

原创 桶排序_BUCKETSORT

桶排序_BUCKETSORT桶排序的思想桶排序的代码编写总结桶排序_BUCKETSORT假设你有五百万份试卷,每份试卷的满分都是100分,如果要你对这些试卷按照分数进行排序,天噜啦,五百万份试卷啊,快速排序?堆排序?归并排序?面对这么多的数据,平均下来上面的每一种一种算法至少都要花费nlogn=5000000log5000000=111267433nlogn=5000000log5000000

2015-05-20 13:18:36 4406

原创 基数排序_RADIXSORT

基数排序_RADIXSORT基数排序的思想基数排序算法实现基于计数排序的基数排序基于最优桶排序的基数排序基数排序_RADIXSORT基数排序是一种基于计数排序_COUNTINGSORT或者是最优桶排序(当然也可以基于其他排序算法,只不过计数排序对于基数排序来说应该是最快的了,因为二者的拼音都是jishupaixu,哈哈)的一种可以在线性时间O(n)O(n)完成的排序算法。博主在做基数排序的

2015-05-19 17:36:21 1435

原创 zsh安装和配置

zsh安装和配置Zsh是一个Linux用户很少使用的power-shell,这是由于大多数Linux产品安装,以及默认使用bash shell。几乎每一款Linux产品都包含有zsh,通常可以用apt-get、urpmi或yum进行安装。zsh是兼容bash的,但是又比bash好用,有什么理由不用zsh呢?zsh的安装在终端中输入下面命令进行安装 sudo apt-get install zsh

2015-05-19 13:32:14 30588

原创 linux查缺补漏之磁盘参数修订

linux磁盘参数修订 档案代表装置 在linux下面我们都知道可以用相应的档案代表一个装置,比如 /dev/sdb1代表sdb硬盘的第一个分隔槽,该装置通过major和minor来标示对应代替的装置 brw-rw—- 1 root disk 8, 0 5月 12 20:16 /dev/sda brw-rw—- 1 root disk 8, 1 5月 12 19

2015-05-16 22:02:17 809

原创 计数排序_COUNTINGSORT

计数排序_COUNTINGSORT我们之前讲过四种基本的排序方法:《快速排序_QUICKSORT》:http://blog.csdn.net/ii1245712564/article/details/45749061 《堆排序_HEAPOSRT》http://blog.csdn.net/ii1245712564/article/details/45534625 《归并排序_MERGESORT》:

2015-05-16 15:16:31 973

原创 快速排序_QUICKSORT

快速排序快速排序的基本思想快速排序的代码实现快速排序的性能分析快速排序快速排序是一个最坏情况时间复杂度为Θ(n2)\Theta(n^2),最好情况下时间复杂度为O(nlogn)O(nlogn)的排序算法。虽然在最坏情况下的时间复杂为n2n^2,但是快速排序的平均性能非常好,只有Θ(nlogn)\Theta(nlogn),而且我们也可以主动避免快速排序的最差的情况,所以快速排序在排序作业中还是

2015-05-15 20:09:06 1960

原创 linux查缺补漏之磁盘和文件系统

linux磁盘与文件系统 格式化 因为每一种文件系统设置所设定的文件属性/权限并不相同,为了存放这些数据,就需要将分隔槽格式化,比如在linux上面文件系统里面就有inode, block, superBlock,这些就是为文件系统而存在的,所以在格式化的时候,就需要在磁盘里面加上标签,标号神马的! 文件系统 在没有LVM和磁盘阵列技术之前,一个分隔槽就代表了一个文件系统,

2015-05-12 20:57:37 1121

原创 C++解析JSON(jsonCpp)

C++解析JSON(jsonCpp)JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript,

2015-05-11 23:33:54 3779

原创 贪心算法之赫夫曼编码

贪心算法之赫夫曼编码编码基本介绍等长编码变长编码前缀码赫夫曼编码的构造贪心选择是安全的最优子结构编码实现编码树节点TreeNode优先队列的实现赫夫曼编码的构建maincc和Makefile编译运行贪心算法之赫夫曼编码赫夫曼编码(Huffman coding)是一种编码方式,赫夫曼编码是变长编码的一种。可以有效的压缩数据,一般可以节约20%~90%的空间,这一般是由文件的数

2015-05-11 15:35:36 2912

原创 优先队列

优先队列我们在之前讲过的《堆的基础知识》和《堆排序》之后,我们来讲讲最大堆和最小堆的具体应用优先队列!优先队列基础知识我们来看看这样的场景,给定你一组数据,要你在这组数据里面找到最大的那个数据,你要怎么做?你可能会说直接遍历一次就行啦,运行时间也就O(n)O(n),但是如果要求你在这堆数据里面找到最大的,然后删除,再在剩下的元素里面找到最大的,那还是要遍历一般所有数据。那有没有其他快速的方法呢?

2015-05-07 20:31:50 4487

原创 堆排序

堆排序堆的基础知识我们已经在《堆的基础知识》:http://blog.csdn.net/ii1245712564/article/details/45505799里面介绍过了,这次我们将介绍堆的用途之一:堆排序在诸多的排序算法里面里面,堆排序算是比较快速的了,排序时间消耗为:O(nlogn)O(nlogn),虽然相对于快速排序来说慢了一点点,但是就对于堆的特有性质而言(最大堆堆顶元素为最大元素,最小

2015-05-06 13:12:28 1682

原创 堆的基础知识

堆堆的基本性质堆也可以说是一个完全二叉树,就是除了最底层的,其它层是满的,既然我们可以用完全二叉树来表示一个堆,那么我们这里就采用数组结构的二叉树来阐述堆的性质。 假设在这里我们用数组A表示堆,A[i]表示堆里面的第i个元素,于是我们通过二叉树的性质可知: - PARENT(i) = i/2 - LEFTCHILD(i) = 2*i - RIGHTCHILD(i) = 2*i+1就如下图表现

2015-05-05 18:01:32 3094

原创 sublime下编辑LaTeX

sublime下编辑LaTeXLaTeX(LATEX,音译“拉泰赫”)是一种基于ΤΕΧ的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在20世纪80年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印

2015-05-05 13:19:56 2869 1

原创 活动选择问题(贪心算法vs动态规划)

活动选择问题贪心算法vs动态规划基础知识1-1动态规划1-2贪心算法1-3贪心算法vs动态规划活动选择问题描述活动选择问题最优子结构活动选择问题算法设计4-1贪心算法之选择最早结束活动4-1-1递归贪心算法4-1-2迭代的方式进行4-2贪心算法之选择最短时长活动4-3动态规划方法实现4-3-1自上而下的实现4-3-2自下而上的实现结论活动选择问题(贪心算法vs动态规划)1.基

2015-05-01 16:25:46 20020 5

原创 0-1背包问题与分数背包问题

0-1背包问题与分数背包问题问题描述问题分析之分数背包代码设计之分数背包问题问题分析之0-1背包问题代码设计之0-1背包问题动态规划算法之间的差别0-1背包问题与分数背包问题我们在文章《贪心算法原理》:http://blog.csdn.net/ii1245712564/article/details/45369491中提到过动态规划和贪心算法的区别。以及两个经典的例子:0-1背包问题和

2015-04-30 16:50:15 10926

原创 贪心算法原理

贪心算法原理贪心算法就是做出一系列选择来使原问题达到最优解。在每一个决策点,都是做出当前看来的最优选择,比如在活动选择问题里面,我们总是在一个问题的基础上选择结束时间最早的活动,之后再在剩下活动的基础上选出结束时间最早的活动,以此类推,直到没有活动可以进行选择。但是遗憾的是这种算法并不是总能得到最优解,并且是否能得到最优解还取决于对于贪心策略的选择。一般来说,设计贪心算法涉及到下面几个步骤: 1

2015-04-29 17:31:47 9117

gperf完美散列

完美散列是可以将散列表的最坏运行时间控制在单位时间内的一种散列方法,而gperf就是一种可以针对给定不变的关键字来自动生成完美散列函数和散列表的一种工具

2015-07-27

散列表之开放定址法

在散列表里面经常发生散列值冲突,为了解决散列冲突问题,开放定址法是一种简单又高效的方法

2015-07-12

散列表之链接法解决冲突

散列表在进行映射的时候经常会发生冲突,这里采用链接法来解决链接法映射冲突带来的问题

2015-06-14

直接寻址法

直接寻址法是一种比较简单的寻址方法,对数据的键值直接映射进行寻址,删除,插入,查询操作都可以在O(1)的时间之内完成

2015-06-10

vimrc配置文件

vimrc的强大配置文件,搭配多个插件使用,如omniCppComplete,TagList以及cscope等软件

2015-06-10

链表_LINKLIST

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)和O(1)。

2015-06-05

顺序队列的实现

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头

2015-05-30

C语言实现链式栈的模板

在C语言里面没有模板一说,这里通过用一些极为巧妙的方法来实现了类似于C++的模板功能,使得链式栈的数据可以通过实际需要的类型来决定

2015-05-27

链式栈实现

链式栈是栈的一种类型,实现是通过链表来实现,这里给出了C++模板实现的栈

2015-05-27

顺序栈实现

顺序栈是栈的一种类型,这里采用C++的模板来实现顺序栈

2015-05-27

选择算法实现代码

选择算法就是用来解决在一堆数里面选出第k大的数的问题。选择算法的设计方法有很多,比如将这堆数据先进行排序,然后取出对应的第k个元素就可以了,这种算法的平均运行时间为O(nlogn),说慢不满,说快也不快。我们将在后面的内容里面介绍一种在线性时间O(n)内就可以完成选择的算法。

2015-05-24

桶排序_BUCKETSORT

桶排序,顾名思义就是运用桶的思想来将数据放到相应的桶内,再将每一个桶内的数据进行排序,最后把所有桶内数据按照顺序取出来,得到的就是我们需要的有序数据,可以在线性时间O(n)内完成排序工作

2015-05-20

基数排序_RADIXSORT

基数排序的排序工作在线性时间之内就可以完成,速度非常之快,这里给出了基于计数排序和桶排序的两种类型的基数排序算法

2015-05-19

zsh与oh-my-zsh终极配置文件

zsh是众多shell里面比较强大的一个,有强大的补全功能,绚丽的颜色配置,传统的bash在它面前都显得没有任何光彩,最重要的就是兼容bash,但是又比bash好用,这里是基于oh-my-zsh的一个强大的配置文件

2015-05-18

赫夫曼编码

赫夫曼编码对数据的压缩很有作用,大约可以压缩20%~90%,主要由文件的数据特性决定的!这里是赫夫曼编码的具体实现,主要借助二叉树和优先队列来实现最优前缀编码,也就是赫夫曼编码,赫夫曼

2015-05-11

GunMakefile

gun makefile 手册,了解makefile是能掌握掌握整个工程的必备技能!

2015-05-03

空空如也

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

TA关注的人

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