- 博客(95)
- 资源 (14)
- 收藏
- 关注
转载 Linux Epoll介绍和程序实例
Linux Epoll介绍和程序实例1. Epoll是何方神圣?Epoll可是当前在Linux下开发大规模并发网络程序的热门人选,Epoll 在Linux2.6内核中正式引入,和select相似,其实都I/O多路复用技术而已,并没有什么神秘的。其实在Linux下设计并发网络程序,向来不缺少方法,比如典型的Apache模型(Process Per Connection,简称PPC),TP
2013-12-23 11:28:19
1060
转载 Linux makefile 教程
概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写m
2013-12-16 11:56:56
1097
转载 在windows下安装python——详解(windows7)
首先鄙人是略带愤怒的写下这篇博文,原因很简单,当网上的资料全部都是模棱两可的复制粘贴而却没有实质性的帮助导致你屡屡碰壁的时候,血液自然会有点儿澎湃。楼主其实刚刚接触python,今天下午在阅读完入门级的《python入门》的前两章后,想下载来看看,google完“windows下python安装”,略傻眼,不是从环境变量开始讲起,就是说类似于一路next下去就好了。我是在想外文网站的资料链
2013-12-11 18:34:18
3002
原创 一个整数分解为连续正整数之和
为了找份暑期实习生的工作,今天去某公司面试。很喜欢这样的公司,首先不问出身、不问爱好,直接给你一台电脑,几道编程题目,让你写程序。其中有道题目是将一个整数分解为连续正整数之和,如15可以分解为:15 = 1 + 2 + 3 + 4 + 515 = 4 + 5 + 615 = 7 + 8这道题,我用最死板的方法给编出来了。输入数n,设置起始位置i,再遍历连续正
2013-09-24 20:45:28
11500
1
转载 完全优化MySQL数据库性能的八大巧方法
本文从八个方面来讲解如何全新优化MySQL数据库性能。1、选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型
2013-09-24 18:28:57
2473
转载 正整数n的所有可能和式的组合
很多人在面试中会被问到这样的题目,题目的含义是有如下的组合4=1+1+1+1、1+1+2、1+3、2+1+1、2+2。光从题目来看有两种理解:将3 = 1 +2 和3 = 2 +1当作不同的组合。这种情况是比较简单的,直接将给定的n递归地分解成(n – 1) + 1当递归求得的结果和我们需要分解的整数n相等,则这次分解就完成了,我们可以把分解的组合输出来,然后返回。一直递归到n不能再分解(
2013-09-24 18:07:06
1941
转载 计数排序、桶排序和基数排序
计数排序当输入的元素是 n 个 0 到 k 之间的整数时,它的运行时间是 Θ(n + k)。计数排序不是比较排序,排序的速度快于任何比较排序算法。由于用来计数的数组C的长度取决于待排序数组中数据的范围(等于待排序数组的最大值与最小值的差加上1),这使得计数排序对于数据范围很大的数组,需要大量时间和内存。例如:计数排序是用来排序0到100之间的数字的最好的算法,但是它不适合按字母顺序
2013-09-23 21:42:03
946
转载 trie树简介
本博客(http://blog.youkuaiyun.com/livelylittlefish )贴出作者(阿波)相关研究、学习内容所做的笔记,欢迎广大朋友指正!Content1. trie基础(1) 是什么?(2) 性质(3) 应用(4) 优点2. 一个例子(1) 功能(2) 代码(3) 运行结果(4) 分析
2013-09-23 21:40:06
1484
转载 一步一图一代码,一定要让你真正彻底明白红黑树
一步一图一代码,一定要让你真正彻底明白红黑树 作者:July 二零一一年一月九日-----------------------------本文参考:I、 The Art of Computer Programming Volume III、 Introduction to Algorithms, Second EditionIII、The Annota
2013-09-23 21:35:49
150106
4
转载 从头到尾彻底解析Hash表算法
从头到尾彻底解析Hash 表算法作者:July、wuliming、pkuoliver 出处:http://blog.youkuaiyun.com/v_JULY_v。 说明:本文分为三部分内容, 第一部分为一道百度面试题Top K算法的详解;第二部分为关于Hash表算法的详细阐述;第三部分为打造一个最快的Hash表算法。---------------------------
2013-09-23 21:32:39
5919
1
转载 从B树、B+树、B*树谈到R 树
从B 树、B+ 树、B* 树谈到R 树 作者:July、weedge、Frankie。编程艺术室出品。说明:本文从B树开始谈起,然后论述B+树、B*树,最后谈到R 树。其中B树、B+树及B*树部分由weedge完成,R 树部分由Frankie完成,全文最终由July统稿修订完成。出处:http://blog.youkuaiyun.com/v_JULY_v 。 第一节、B树、B+树、B*
2013-09-23 21:25:01
1846
转载 教你透彻了解红黑树
教你透彻了解红黑树 作者:July、saturnman 2010年12月29日本文参考:Google、算法导论、STL源码剖析、计算机程序设计艺术。推荐阅读:Left-Leaning Red-Black Trees, Dagstuhl Workshop on Data Structures, Wadern, Germany, February,
2013-09-23 21:22:05
1291
转载 B树、B-树、B+树、B*树 红黑树
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关
2013-09-23 21:19:31
1143
转载 B-树和B+树的应用:数据搜索和数据库索引
1 .B-树定义B-树是一种平衡的多路查找树,它在文件系统中很有用。定义:一棵m 阶的B-树,或者为空树,或为满足下列特性的m 叉树:⑴树中每个结点至多有m 棵子树;⑵若根结点不是叶子结点,则至少有两棵子树;⑶除根结点之外的所有非终端结点至少有[m/2] 棵子树;⑷所有的非终端结点中包含以下信息数据: (n,A0,K1,A1,K2,…,Kn,A
2013-09-23 21:17:07
1300
原创 sql和mysql区别
mssql 的正式名字是 SQL Server MS公司出的。图形操作界面好一些,性能还可以。在在mssql和oracle上不能互换.支持OLEDB连接.asp、mssaql只能for window mysql 就是mysql 下面是readme:免费软件。性能也可以。速度快,用于小规模.命令行界面.(可以装图形操作软件.) sqlserver 我以前是做ASP的时候用的 现在学PHP
2013-09-23 10:53:07
26336
转载 提高数据库查询效率的方法
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:sel
2013-09-23 10:43:02
1287
转载 数据库索引的作用和优点缺点
为什么要创建索引呢?这是因为,创建索引可以大大提高系统的性能。 第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。 第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 第四,在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 第五,通过使用索引
2013-09-23 10:33:44
907
转载 Apache与Tomcat 区别联系
Apache 和 Tomcat 都是web网络服务器,两者既有联系又有区别,在进行HTML、PHP、JSP、Perl等开发过程中,需要准确掌握其各自特点,选择最佳的服务器配置。apache是web服务器(静态解析,如HTML),tomcat是java应用服务器(动态解析,如JSP、PHP)tomcat只是一个servlet(jsp也翻译成servlet)容器,可
2013-09-23 10:22:33
868
转载 哈夫曼编码
哈弗曼编码几乎是所有压缩算法的基础,其实这个算法并不复杂,简单的理解就是,如何用更短的bit来编码数据。我们知道普通的编码都是定长的,比如常用的ASCII编码,每个字符都是8个bit:字符编码A00101001B00101010C00101011…… 这样,计算机就能很方便的把由0和1
2013-09-22 16:14:07
1330
转载 堆排序(大根堆)
堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。1.堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为大顶
2013-09-22 15:47:45
28488
1
转载 数据库范式
范式7大范式:1NF, 2NF,3NF,BCNF,4NF,5NF,6NF什么叫normalization?Denormalization?Normalization是数据库规范化,denormalization是数据库逆规范化。在设计和操作维护数据库时,关键的步骤就是要确保数据正确地分布到数据库的表中。使用正确的数据结构,不仅便于对数据库进行相应的存取操作,而且可以
2013-09-21 00:54:07
1052
转载 HTTP协议
引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of H
2013-09-16 13:20:07
923
转载 typedef和define的详细区别
typedef是一种在计算机编程语言中用来声明自定义数据类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字。 #define是预处理指令。下面让我们一起来看。typedef是C语言语句,其功能是用户为已有数据类型取“别名”。 例如: typedef int INTEGER; 这以后就可用INTEGER来代替int作整型变量的类型说明了,如: INTEGER a,b; 用type
2013-09-16 00:28:11
896
原创 关系数据库的特点
关系型数据库的主要特征1)数据集中控制,在文件管理方法中,文件是分散的,每个用户或每种处理都有各自的文件,这些文件之间一般是没有联系的,因此,不能按照统一的方法来控制、维护和管理。而数据库则很好地克服了这一缺点,可以集中控制、维护和管理有关数据。2)数据独立,数据库中的数据独立于应用程序,包括数据的物理独立性和逻辑独立性,给数据库的使用、调整、优化和进一步扩充提供了方便,提高了数据库应
2013-09-16 00:10:34
8882
原创 最大子序列和
最大子序列和一个考试比较常见但是却又不是很难的算法题,因此,我们很有必要好好理解并消化它。我们以一个例题来说明一下吧(网上找的):输入一组整数,求出这组数字子序列和中最大值。也就是只要求出最大子序列的和,不必求出最大的那个序列。例如:序列:-2 11 -4 13 -5 -2,则最大子序列和为20。序列:-6 2 4 -7 5 3 2 -1 6 -9 10 -2,则最
2013-09-15 22:53:53
909
原创 求数组中元素的最短距离
题目:给定一个含有n个元素的数组,找出数组中的两个元素X和Y使得abs(x-y)最小解题思路:先排序,然后遍历元素。#include//#include#includeusing namespace std;/* author:chhuaj date:2013.9.13 description:给定一个含有n个元素的数组,找出数组中的两个元素X和Y使得abs(x-
2013-09-13 21:26:43
4696
1
原创 求数组中超过一半的元素
解题思路:设置一个当前值和当前值的计数器,初始化当前值为数组首元素,计数器值为1,然后从第二个元素开始遍历整个数组,对于每个被遍历到的值a[i]1 如果a[i]==currentValue,则计数器值加12 如果a[i] != currentValue, 则计数器值减1,如果计数器值小于0,则更新当前值为a[i],并将计数器值重置为1#includeusing namespa
2013-09-13 20:17:47
1230
原创 递归求数组最大最小值(分治思想)
求数组最大最小值我们可以用遍历或者最简单的排序方法来实现,但是那样子的时间复杂度将会大很多,因此我们可以采用分治思想来求最大最小值,即先求左右两部分,即先求出左半部分的最大最小值,再求出右半部分的最大最小值,然后再把左右两部分的最大最小值合起来求总的最大最小值。代码如下:#includeusing namespace std;/* author:chhuaj date:20
2013-09-13 19:53:19
12788
原创 最小生成树(Prim算法)
最小生成树是一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。最小生成树其实是最小权重生成树的简称。其一般应用于无向图。求最小生成树有两个算法:Prim算法和Kruskal算法。在这里我主要针对Prim算法解释。普里姆(Prim)算法思想普里姆算法则从另一个角度构造连通网的最小生成树。它的基本思想是:首先选取图中
2013-09-13 16:25:46
1967
原创 Dijkstra算法
#include#includeusing namespace std;const int MIN=1000000;int flag[5];int a[5][5];int dis[5];int main(){ memset(flag,0,sizeof(flag)); memset(a,MIN,sizeof(a)); //初始化矩阵 int dian,bian; int
2013-09-13 15:50:05
1104
转载 几种最短路径算法的比较
用于解决最短路径问题的算法被称做“最短路径算法”,有时被简称作“路径算法”。最常用的路径算法有:Dijkstra算法、A*算法、SPFA算法、Bellman-Ford算法和Floyd-Warshall算法,本文主要介绍其中的三种。最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。算法具体的形式包括:确定起点的最短路径问题
2013-09-13 14:00:12
1376
原创 Floyd算法
最近在准备招聘的时候看到了华为的一道关于floyd算法的题,故在想总结一下这个算法以加深我对这个算法的理解。 Floyd算法又称为弗洛伊德算法,插点法,是一种用于寻找给定的加权图中顶点间最短路径的算法。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名。该算法的可信思想主要由三重循环构成,故该算法的时间复杂度为O(n^3). 其状
2013-09-13 13:14:49
1205
原创 “Cache-主存”和“主存和辅存”的区别
最近在学习的时候碰到了一个关于“Cache-主存”和“主存和辅存”的区别,平时学习都只是大概了解一下,但是具体的区别没有深入学习,所以这次既然碰到了就仔细了解一下。 “cache-主存”指 在 CPU 和主存之间增加一级速度快、但容量较小且每位价格较高的高速缓冲存储Cache)。借助于辅助软硬件,它与主存构成一个有机的整体,以弥补主存速度的不足。这个 层次的工作主要由硬件实现
2013-09-01 00:35:34
21960
2
转载 Python处理Excel数据
前段时间做了个小项目,帮个海洋系的教授做了个数据处理的软件。基本的功能很简单,就是对Excel里面的一些数据进行过滤,统计,对多个表的内容进行合并等。之前没有处理Excel数据的经验,甚至于自己都很少用到Excel。记得《Python核心编程》的最后一章里有讲到用Win32 COM操作office, 看了一下讲的不是很清楚。google了一下找到不少能处理excel数据的模块。对比了一下最终选定了
2013-08-20 16:48:32
4287
转载 openpyxl 读写excel2007使用笔记
有一万年没来这儿写blog了,今天等着发版,抽空来写点东西吧。python有很多模块都是用来操作excel的,比如xlrd,xlwt,pyExcelerator。用着很方便,但是问题是,只能支持到excel2003。虽然一般的应用其实足够了,但是如果遇到了导出大量数据(超过65535条)的需求时,excel2003就不够用了。所以我就只好去找一个能支持excel2007的模块。 g
2013-08-20 16:41:17
5894
转载 python与web编程
source:: http://code.google.com/p/python-tips/source/browse/MP3-Fetch/doc/doc_1 #! /usr/bin/python一. 代理服务器:代理服务器(Proxy server),从其名字上不难理解,就是做代理的,其作用与现在各种各样的代理商差不多。作为教育网和169的用户来讲,他们不能直接访问国外的
2013-08-12 21:04:58
2825
转载 Session的生命周期
Session的生命周期 以前在学习的时候没怎么注意,今天又回过头来仔细研究研究了一下Session的生命周期。 Session存储在服务器端,一般为了防止在服务器的内存中(为了高速存取),Sessinon在用户访问第一次访问服务器时创建,需要注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session,可调用req
2013-08-09 15:03:56
989
转载 吐槽:MySQL 5.6的NoSQL功能如“鸡肋”
本月初,甲骨文公司发布了正式版的MySQL 5.6数据库(参考:甲骨文发布最新MySQL 5.6版 ),其中增加了一些NoSQL特性,即通过Memcached API对InnoDB的灵活NoSQL访问,提供了InnoDB数据的简单、关键值查找。然而在一些业内人士看来,MySQL 5.6的NoSQL功能却形如“鸡肋”。 大数据创业公司DataStax的技术总监Jonathan Ellis近
2013-07-24 22:46:43
3480
转载 SQL索引优化
序言数据库的优化方法有很多种,在应用层来说,主要是基于索引的优化。本次秘笈根据实际的工作经验,在研发原来已有的方法的基础上,进行了一些扩充,总结了基于索引的SQL语句优化的降龙十八掌,希望有一天你能用其中一掌来驯服客服业务中横行的‘恶龙’总纲建立必要的索引这次传授的降龙十八掌,总纲只有一句话:建立必要的索引,这就是后面降龙十八掌的内功基础。这一点看似容易实际却很难。难就难在如何判断
2013-07-24 01:16:02
940
转载 索引效率优化
索引是提高数据查询最有效的方法,也是最难全面掌握的技术,因为正确的索引可能使效率提高10000倍,而无效的索引可能是浪费了数据库空间,甚至大大降低查询性能。 索引的管理成本 1、存储索引的磁盘空间 2、执行数据修改操作(INSERT、UPDATE、DELETE)产生的索引维护 3、在数据处理时回需额外的回退空间。 实际数据修改测试:
2013-07-24 01:14:40
1370
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人