自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

《我是你的正能量》

话少说 事多做

  • 博客(363)
  • 资源 (31)
  • 收藏
  • 关注

原创 openssl 生成SSL证书

注意:制作签发证书的请求文件时,需要输入Common Name参数,此参数一定为当前主机的IP地址,否则将会显示证书错误。(我直接输入XX即可)图解SSL协议(http://blog.csdn.net/wallezhe/article/details/50977337) 基于OpenSSL自建CA和颁发SSL证书(http://seanlook.com/2015/01/18/openssl-s

2017-01-20 17:19:09 4641 1

原创 Trie树 与 三分树(Ternary Trees)

总结为什么用Trie树?词频统计 可能有人要说了,词频统计简单啊,一个hash或者一个堆就可以打完收工,但问题来了,如果内存有限呢?还能这么玩吗?所以这里我们就可以用trie树来压缩下空间,因为公共前缀都是用一个节点保存的。前缀匹配 如果and,as,at,我想获取所有以”a”开头的字符串,如果不用trie树,你该怎么做呢?很显然朴素的做法时间复杂度为O(N2),那么用Trie树就不一样了,

2016-12-30 11:25:20 3577 1

原创 排序公式 与 组合公式

总结C-代表-Combination–组合数 A-代表-Arrangement–排列数(在旧教材为P-permutation–排列) N-代表-元素的总个数 M-代表-参与选择的元素个数 !-代表-阶乘博客(http://jingyan.baidu.com/article/63acb44ac60d4e61fcc17e2e.html)排序公式从n个不同元素中,任取m个元素按照一定的顺序排成一列

2016-12-30 09:57:43 1869 1

原创 开放定址法(线性探测),拉链法 -Hash算法

总结:哈希别名为:Hash 或者 散列表; 开放定址法是为了解决hash值碰撞后的处理;散列表(哈希)是算法在时间和空间上作出权衡的经典例子。 如果没有内存限制,我们可以直接将键作为(可能是一个超大的)数组的索引,那么所有查找操作只需要访问内存一次即可完成。但这种情况不会经常出现,因此当键很多时需要的内存太大。 另一方面,如果没有时间限制,我们可以使用无序数组并进行顺序查找,这样就只需要很少的

2016-12-30 09:11:01 7492 2

原创 位图排序、多路归并排序-应对磁盘文件排序

注意文章详解(http://blog.csdn.net/v_JULY_v/article/details/6451990)如何给磁盘文件排序问题描述:输入:给定一个文件,里面最多含有n个不重复的正整数(也就是说可能含有少于n个不重复正整数),且其中每个数都小于等于n,n=10^7。 输出:得到按从小到大升序排列的包含所有输入的整数的列表。 条件:最多有大约1MB的内存空间可用,但磁盘空间足够。且

2016-12-13 17:08:40 1970

原创 哈希Hash 算法

注意文章详解(http://blog.csdn.net/v_july_v/article/details/6256463)哈希由来:数组的特点是:寻址容易,插入和删除困难 链表的特点是:寻址困难,插入和删除容易做出一种寻址容易,插入删除也容易哈希特点:通过散列算法,变换成固定长度的输出;散列值的空间通常远小于输入的空间, 不同的输入可能会散列成相同的输出, 而不可能从散列值来唯一的确定输

2016-12-13 14:08:12 2121

原创 二叉树前序、中序确定树结构

例子前序:A D C E F G H B 中序:C D F E G H A B中序使用中括号划分左、右子树中括号选中的节点依次为前序的顺序; 中括号左右两边分别为左、右子树; 当子树为1个节点时,可以肯定这个子树位置;C D F E G H [A] BC [D] F E G HF [E] G H[G] H演示过程

2016-12-09 14:59:45 795

原创 MG-SOFT Compiler、Browser、Builder使用

基本环境桌面新建一个mibs文件夹; mibs文件夹中一个Test-MIB.my文件;Test-MIB.my内容如下:-- Test-MIB.my Test-MIB DEFINITIONS ::= BEGIN IMPORTS OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP

2016-11-26 16:04:14 8334 1

原创 net-snmp-5.4.4 编译,安装,运行。

总结net-snmp编译和安装:(http://www.cnblogs.com/oloroso/p/4595123.html) net-snmp配置文件含义:(http://blog.csdn.net/shanzhizi/article/details/16985989) (http://www.linuxde.net/2013/02/12269.html)下载连接wget http://do

2016-11-24 15:33:01 2381

原创 B树,B+树,B*树 算法

总结B树:是为了磁盘或其它存储设备而设计的一种多叉平衡查找树B和B+树的区别:B树在提高了磁盘IO性能的同时并没有解决元素遍历的效率低下的问题。正是为了解决这个问题,B+树应运而生。B+树只要遍历叶子节点就可以实现整棵树的遍历。而且在数据库中基于范围的查询是非常频繁的,而B树不支持这样的操作(或者说效率太低)。 B+树的非叶子结点只包含导航信息,不包含实际的值,所有的叶子结点和相连的节点使用链表相

2016-11-22 10:16:49 1723

原创 二叉查找树、平衡树、伸展树、红黑树 算法

总结二叉查找树:任意一个节点所包含的键值,大于等于左孩子的键值,小于等于右孩子的键值。 此外,无论是左旋还是右旋,若旋转之前这棵树是二叉查找树,旋转之后它一定还是二叉查找树。平衡树(AVL树):AVL树中任何节点的两个子树的高度最大差别为1,LL,RR,LR,RL旋转算法。 对于1百万个节点的平衡树,树的高度为12-20之间,对于10亿个节点的平衡树,树的高度为18-30之间。伸展树:当某个节点

2016-11-22 09:30:49 3291

原创 树、二叉树、二叉查找树 算法

总结:树:树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。 二叉树:可以是空集;根可以有空的左子树或右子树;或者左、右子树皆为空。 1. 完整二叉树:2{h} –1节点,h是高度 2. 满二叉树(包括完整二叉树):两层结点的度可以小于2,并且最下一层的叶结点集中在靠左的若干位置上 3. 二叉查找树:左子树节点值<它的根节点值<右子树节点值。二叉查找树(h

2016-11-21 19:47:51 913

原创 顺序,二分,插值,斐波那契 查找算法-效率测试

总结:通过下述效率测试:平均效率:二分查找>斐波那契查找>顺序查找>插值查找二分查找和斐波那契查找平均效率大约大10倍。插值查找虽然是二分查找的升级,但由于超找数组(链表)的值不均匀,导致平均插值查找效率都比顺序查找效率低。这里测试在数据中随机抽取1024个值,来计算平均时间,有可能测试不全面导致顺序查找效率高于插值查找。Text Len : 1(KB)Loop times :

2016-11-21 17:35:54 1587

原创 顺序,二分,插值,斐波那契 查找算法

总结:博客详细描述:(http://www.cnblogs.com/maybe2030/p/4715035.html#_label4)二分查找、插值查找以及斐波那契查找都可以归为一类插值查找; 插值查找和斐波那契查找是在二分查找的基础上的优化;但由于数组中数据分布非常不均匀,所以插值查找效率未必好;查找定义:根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录)。查找算法

2016-11-19 15:25:25 1857

原创 Simple、KMP、BM、Sunday匹配算法-效率测试

总结:BM属于贪心算法,适应于实际应用。KMP是稳定算法,不在乎特例。sunday更容易理解,效率比BM高。一般的BM算法很容易构造m*n的特例,不过实际应用中比较少见。当然BM算法也可以改造成稳定的,构造模式比KMP需要多一些时间。模式串比较长时的时候bm不错,如果模式串较短,差不了多少KMP算法比BM算法实际性能差3-5倍时间复杂度简单匹配 O(m*n) KMP O(m+n)

2016-11-11 17:03:40 3077 3

转载 Sunday匹配算法

总结:Sunday算法比BM算法还要快。一:背景Sunday算法是Daniel M.Sunday于1990年提出的字符串模式匹配。其效率在匹配随机的字符串时比其他匹配算法还要更快。Sunday算法的实现可比KMP,BM的实现容易太多。二:分析假设我们有如下字符串: A = “LESSONS TEARNED IN SOFTWARE TE”; B = “SOFTWARE”; Sunday算法的大致

2016-11-09 19:30:40 840

原创 BM匹配算法

总结:KMP算法并不是效率最高的算法,实际采用并不多。各种文本编辑器的”查找”功能(Ctrl+F),大多采用Boyer-Moore算法。 假定字符串为”HERE IS A SIMPLE EXAMPLE”,搜索词为”EXAMPLE”E X A M P L E0 1 2 3 4 5 6坏字符规则: 移动位置 = 坏字符位置 - 搜索词中的上一次出现位置 7 = EXAMPLE最后一个字符E(

2016-11-09 14:19:47 1441

原创 AC多模匹配算法-测试效率

总结:AC算法对无规则匹配数据和有关联匹配数据影响不是很明显。 无论是有匹配还是无关匹配,大概遍历1G文件都需要10s左右。1G文件中都是0到9的字符。无匹配操作时,单纯遍历1G文件耗时情况[root@devvm acsmx]# ./ac 1G.txt ABCDE AAAAA BBBB KKKK EEEETotal Time: 4.1900 seconds.有关数据匹配:相关数据匹配[root@

2016-11-08 19:16:39 1877

转载 AC多模匹配算法

总结:AC算法的核心是三张查找表:goto、failure和output,共包含四种具体的算法,分别是计算三张查找表的算法以及AC算法本身。可以先阅读博客(http://tech.meituan.com/ac.html)了解goto表、failure表。 下述文章(http://blog.csdn.net/myjoying/article/details/7960534)博客转发。早在1975年贝

2016-11-08 10:12:38 2235

原创 KMP匹配算法-效率测试

总结:KMP匹配无规律的匹配字符串效果不太好。KMP匹配有关联的字符串效率比较高。KMP匹配无关数据,效率也许比简单匹配低。无关数据匹配//无关数据匹配//模式匹配字符串PA B C D A B D A B A C D -1 0 0 0 -1 0 2 -1 0 2 1 0 //文本串SE H

2016-11-07 13:56:48 2624

原创 KMP匹配算法

总结:上文中,KMP算法和BM算法,这两个算法在最坏情况下均具有线性的查找时间。但实际上,KMP算法并不比最简单的c库函数strstr()快多少,而BM算法虽然通常比KMP算法快,但BM算法也还不是现有字符串查找算法中最快的算法,比BM算法更快的查找算法即Sunday算法。这篇文章已经详细描述:http://blog.csdn.net/v_july_v/article/details/7041827

2016-11-07 11:11:43 454

原创 堆排序

先对二叉堆(最大堆和最小堆)理解:(实现添加,删除) 二叉堆文章:http://www.cnblogs.com/skywang12345/p/3610187.html 1、添加 2、删除 堆排序文章:http://www.cnblogs.com/skywang12345/p/3602162.html最大堆进行升序排序的基本思想: ① 初始化堆:将数列a[1…n]构造成最大堆。 ② 交

2016-11-03 15:01:37 438

原创 冒泡、选择、插入、归并、快速、堆排序效率测试

总结:冒泡、插入、归并都是稳定排序。 冒泡、选择、插入时间复杂度平均O(n^2)。 堆排、归并、快速时间复杂度平均O(nlogn)。测试结果:Text Len : 1(KB)Loop times : 512 Bubble Select Insert Merge Quick HeapTIME 0.00168 0.00121 0.00066 0.0

2016-11-03 09:46:09 907

原创 冒泡、选择、插入、归并、快速排序代码

冒泡排序void bubble_sort(int * array, int len){ int tmp; for (int i=0; i<len; ++i) { for (int j=0; j<(len-i-1); ++j) { if(array[j+1] < array[j]) {

2016-11-03 09:40:38 380

原创 归并排序

归并排序是利用”归并”技术来进行排序。归并是指将若干个已排序的子文件合并成一个有序的文件。常见的归并排序有两路归并排序(Merge Sort),多相归并排序(Polyphase Merge Sort),Strand排序(Strand Sort)。下面介绍第一种:两路归并排序最差时间复杂度:O(nlogn) 平均时间复杂度:O(nlogn) 最差空间复杂度:O(n) 稳定性:稳定两路归并排序(M

2016-11-02 15:16:14 653

原创 冒泡排序

冒泡排序算法的流程如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。原理: 代码:int array[] = {1,3,2,8,6,4,9,11};int le

2016-11-01 17:21:01 510

转载 C语言 #define 中的UL

U和L是 整数文字量的后缀修饰,用于显示指明整数文字量的类型为unsigned int(U)和long int(L)。 类似的还有浮点数文字量的后缀修饰F 或 f,用于指明文字量表示的是一个float,而不是默认情况下的double。现在才明白UL是标记该宏长整型 十进制 数据,而不是字符,也不是int型数据。 C语言中默认宏中的数字是整型数据。 如下面的例子:#define LENGTH (

2016-11-01 15:21:54 3429

转载 不能做switch()的参数类型

C/C++中: 支持byte,char,short,int,long,bool,整数类型和枚举类型。 不支持float,double,stringJava中: boolean类型 String类型是java7开始支持

2016-11-01 15:08:55 12458 1

转载 C++函数中那些不可以被声明为虚函数的函数

常见的不不能声明为虚函数的有:普通函数(非成员函数);静态成员函数;内联成员函数;构造函数;友元函数。 1、为什么C++不支持普通函数为虚函数? 普通函数(非成员函数)只能被overload,不能被override,声明为虚函数也没有什么意思,因此编译器会在编译时邦定函数。2、为什么C++不支持构造函数为虚函数? 这个原因很简单,主要是从语义上考虑,所以不支持。因为构造函数本来就是为了明确初

2016-11-01 14:45:43 384

原创 指针和引用 区别(引用只能在定义时被初始化一次)

Charles 对于“引用只能在定义时被初始化一次”开始不理解:int i = 10;int j = 11;int & a = i;cout << "a = " << a << endl;cout << "i = " << i << endl;a = j;//注意,这里不是被使用j的别名,是i的值被赋值成j.cout << "a = " << a << endl;cout << "i =

2016-11-01 14:02:33 3740 1

转载 static 作用?

Charles总结: 1、隐藏 2、保存内容持久 3、默认初始化为0(静态数据区默认数据是0)在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面

2016-11-01 11:21:55 308

转载 参数的宏、函数、内联函数的优缺点

参数宏 与 函数: 1.函数调用时,先求出实参表达式的值,然后带入形参。而使用带参的宏只是进行简单的字符替换。 2.函数调用是在程序运行时处理的,分配临时的内存单元;而宏展开则是在编译时进行的,在展开时并不分配内存单元,不进行值的传递处理,也没有“返回值”的概念。 3.对函数中的实参和形参都要定义类型,二者的类型要求一致,如不一致,应进行类型转换;而宏不存在类型问题,宏名无类型,它的参数也无类

2016-11-01 11:15:17 482

转载 C++项目中的extern "C" {}

注意: 在C++源文件中的语句前面加上extern “C”,表明它按照类C的编译和连接规约来编译和连接,而不是C++的编译的连接规约。引言在用C++的项目源码中,经常会不可避免的会看到下面的代码:#ifdef __cplusplusextern "C" {#endif/*...*/#ifdef __cplusplus}#endif它到底有什么用呢,你知道吗?而且这样的问题经常会出现在面试o

2016-11-01 10:15:45 416

转载 C++默认参数与函数重载 注意事项

一、默认参数 在C++中,可以为参数指定默认值。在函数调用时没有指定与形参相对应的实参时, 就自动使用默认参数。默认参数的语法与使用: (1)在函数声明或定义时,直接对参数赋值。这就是默认参数; (2)在函数调用时,省略部分或全部参数。这时可以用默认参数来代替。 注意: (1)默认参数只可在函数声明中设定一次。只有在没有函数声明时,才可以在函数定义中设定。(#add ,此句意为存在函数声明

2016-11-01 09:37:34 577

转载 默认参数的构造函数

对于有参数的构造函数,在定义对象时必须给构造函数传递参数。实际情况中,虽然有些构造函数有参数,但其参数是不变的,这就是默认参数的构造函数。此时构造函数的形式如下:类名(函数名)(参数1=默认值,参数2=默认值,…) 构造函数中的参数与普通函数的参数是一样的,所谓的默认参数即为该参数设置一个默认的取值。可以为全部或者部分参数设置默认值。【示例4.11】 利用前面的point类,用带默认参数的构造函

2016-11-01 09:14:35 1120

转载 菱形继承和虚继承

转:http://blog.csdn.net/jackystudio/article/details/17877219

2016-10-31 11:25:02 4326

转载 默认构造函数-(无关、有关)

转:http://blog.csdn.net/hankai1024/article/details/7947989 错误认识1:若程序员没有自己定义无参数的构造函数,那么编译器会自动生成默认构造函数,来进行对成员函数的初始化。 错误认识2:编译器合成出来的default constructor会明确设定’“class内每一个data member的默认值”。但这两种种认识是有误的,不全面的。

2016-10-31 11:20:41 459

转载 为什么要使用非类型模板参数?

为什么要使用非类型模板参数? 1、这是因为需要才这样的,不如说:我们要实现一个堆栈,那么我们在堆栈中的数据可能是指针,字符串,整型等,那么如果没有摸板非类型参数,我们就要定义3个摸板,但是我们有了摸板非类型参数,我们就可以定义一个摸板,在定义的时候指定类型. 2、类型参数用于指定一个类型,非类型参数用于指定一个量。 有的模板可以基于类型而实例化,比如一个链表,可以装字符串对象,也可以装整数;

2016-10-31 11:07:23 1535 1

转载 虚析构函数(删除基类对象时,先调用派生类的虚构函数,再调用基类虚析构函数)

我们已经介绍过析构函数(详情请查看:C++析构函数),它的作用是在对象撤销之前做必要的“清理现场”的工作。当派生类的对象从内存中撤销时一般先调用派生类的析构函数,然后再调用基类的析构函数。1、系统会只执行基类的析构函数,而不执行派生类的析构函数。如下例子 [例12.3] 基类中有非虚析构函数时的执行情况。为简化程序,只列出最必要的部分。 1. #include <iostream> 2. u

2016-10-31 10:48:57 3591

转载 类的成员变量 声明顺序 决定 初始化顺序(构造函数初始化列表不影响)

类成员的声明顺序决定初始化顺序; 构造函数初始化列表不影响初始化顺序;C++初始化类成员时,是按照声明的顺序初始化的,而不是按照出现在初始化列表中的顺序。class B{public: //m_b = 2,m_a = 1 B():m_a(1),m_b(m_a+1) { cout << "m_b = " << m_b << ",m_a = " << m_a

2016-10-31 10:33:58 1525

大数据之flink教程-带目录.doc

大数据之flink教程.doc

2021-04-04

UIbutton培训学习代码

UIbutton培训学习代码

2013-12-25

高手毕生精力总结的电脑技巧(最完整)

高手毕生精力总结的电脑技巧(最完整)

2013-11-27

lighttpd-1.4.20.tar.gz 源码,可以配合文档学习

lighttpd-1.4.20.tar.gz 源码,可以配合文档学习

2013-11-27

linux FTP client 与 server c语言 可以编译通过

linux FTP client 与 server c语言 可以编译通过

2013-11-26

C++游戏开发笔记

C++游戏开发笔记

2013-08-06

(tr069)ACS模拟器(非常实用工具)

(tr069)ACS模拟器(非常实用工具).rar

2013-08-06

PC-Lint+8.00w.rar下载

下载PC-Lint+8.00w.rar

2013-08-02

用CURL来发送HTTP请求的方法

用CURL来发送HTTP请求的方法

2013-07-22

个人网站设计

个人网站设计

2012-11-16

java经典八十题及代码

java经典八十题及代码

2012-11-16

嵌入式Linux应用程序开发标准教程》第2版全

嵌入式Linux应用程序开发标准教程》第2版全

2012-11-16

cs8900a.c 网卡驱动 国嵌资料

cs8900a.c 网卡驱动 国嵌资料

2012-05-24

c#摄像头驱动详解,带有注释,很精辟

c#摄像头驱动详解,带有注释,很精辟

2012-04-28

linux_下_C_语言_连接_MySQL数据库_(详细注释).txt

linux_下_C_语言_连接_MySQL数据库_(详细注释).txtlinux_下_C_语言_连接_MySQL数据库_(详细注释).txt

2012-04-28

一个程序员对学弟学妹建议.doc

一个程序员对学弟学妹建议.doc

2012-04-28

五子棋C++源码(经典)

五子棋C++源码(经典有200万用户下载)

2012-04-16

C++高级参考手册(完全版).rar

C++高级参考手册(完全版).rar

2012-03-13

Android面试题+答案

Android面试题+答案

2012-03-01

设计模式6大原则.doc

设计模式6大原则.doc

2012-03-01

国嵌嵌入式Linux应用开发班实验手册.pdf

国嵌嵌入式Linux应用开发班实验手册.pdf

2012-03-01

男人撑过二十秒源码android版Man20.rar

男人撑过二十秒源码android版Man20.rar

2012-02-29

国嵌必须wireshark.zip

国嵌必须wireshark.zip

2012-02-29

C++必知必会重点掌握.pdf

C++必知必会重点掌握.pdf

2012-02-29

国嵌 视频资料qcd.rar

国嵌 视频资料qcd.rar国嵌 视频资料qcd.rar国嵌 视频资料qcd.rar

2012-02-29

( C#+总套教程案例(适合初学者)重点掌握.zip )

( C#+总套教程案例(适合初学者)重点掌握.zip )

2012-02-29

500强android学习资料重点掌握.zip

500强android学习资料重点掌握.zip

2012-02-28

51单片机C语言应用程序实例精讲》读者调查表.doc

51单片机C语言应用程序实例精讲》读者调查表.doc

2012-02-28

C南开100题题库和答案分析C南开100题题库和答案分析

C南开100题题库和答案分析

2012-02-28

wireshark-win32-1.6.5.zip

wireshark-win32-1.6.5.zip

2012-02-28

空空如也

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

TA关注的人

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