自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (1)
  • 收藏
  • 关注

转载 关联规则挖掘基本概念与Aprior算法

关联规则挖掘在电商、零售、大气物理、生物医学已经有了广泛的应用,本篇文章将介绍一些基本知识和Aprori算法。 啤酒与尿布的故事已经成为了关联规则挖掘的经典案例,还有人专门出了一本书《啤酒与尿布》,虽然说这个故事是哈弗商学院杜撰出来的,但确实能很好的解释关联规则挖掘的原理。我们这里以一个超市购物篮迷你数据集来解释关联规则挖掘的基本概念:TIDItems

2017-08-27 22:52:38 820

转载 不产生候选集的关联规则挖掘算法FP-Tree

上篇博客讲述了Apriori算法的思想和Java实现,http://blog.csdn.NET/u010498696/article/details/45641719 Apriori算法是经典的关联规则算法,但是如上篇博客所述,它也有两个致命的性能瓶颈,一个是频繁集自连接产生候选集这一步骤中可能产生大量的候选集;另一个是从候选集得到频繁项集需要重复扫描数据库。2000年,Han等提出了一个

2017-08-27 22:50:02 625

转载 主成分分析(PCA)原理详解

一、PCA简介1. 相关背景      在许多领域的研究与应用中,往往需要对反映事物的多个变量进行大量的观测,收集大量数据以便进行分析寻找规律。多变量大样本无疑会为研究和应用提供了丰富的信息,但也在一定程度上增加了数据采集的工作量,更重要的是在多数情况下,许多变量之间可能存在相关性,从而增加了问题分析的复杂性,同时对分析带来不便。如果分别对每个指标进行分析,分析往往是孤立的,而不是综合的。

2017-08-27 22:32:37 563

转载 并发用户数和QPS

关于并发用户数和QPS,自己一直被这两个概念纠结,阅读了一下相关资料,总结如下:并发 用户数和QPS两个概念没有直接关系,但是如果要说QPS时,一定需要指明是多少并发用户数下的QPS,否则豪无意义,因为单用户数的40QPS和20并 发用户数下的40QPS是两个不同的概念。前者说明该应用可以在一秒内串行执行40个请求,而后者说明在并发20个请求的情况下,一秒内该应用能处理40 个请求,当QPS相同时

2014-04-03 10:14:29 5918

转载 PyMongo基本使用

引用PyMongo>>> import pymongo 创建连接Connection>>> import pymongo>>> conn = pymongo.Connection('localhost',27017)或>>> from pymongo import Connection>>> conn = Co

2014-03-23 23:28:31 737

转载 linux下mongodb的安装启动操作

1. 下载MongoDB,此处下载的版本是:mongodb-linux-i686-1.8.1.tgz.tar。(我的测试机是ubuntu32bit的)http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.1.tgz2. 解压文件到某目录下,然后重命名:[root@localhost src]#

2014-03-22 12:28:55 660

原创 Python中调用C++函数

Python开发效率高,运行效率低。而c/c++恰恰相反。因此在python脚本中调用c/c++的库,对python进行扩展,是很有必要的。使用python api,http://www.python.org/doc/ ,需要安装python-dev。test.cpp文件如下 #include //包含python的头文件 #include #include usin

2011-11-27 01:04:38 863

转载 CentOS下安装mysql

1、到chinaunix下载mysql  下载地址: http://download.chinaunix.net/download/0008000/7159.shtml  2、上传到CentOS服务器 本例放在 /home/jiangfeng3 中

2011-09-06 18:24:44 655

转载 Linux下SVN命令

1.svn add:往版本库中添加新的文件例如:svn add test.php(添加test.php)svn add *.php(添加当前目录下所有的php文件)2.svn blame (praise, annotate, ann):显示特定文件和URL内嵌的作

2011-08-31 17:22:42 1906

转载 MySQL常用命令总结

一、基础1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7backup/MyNwind_1.dat'--- 开始备份BACKUP DATABASE pubs TO testBack 4、说明:创建新表create table ta

2010-12-03 21:39:00 437

转载 Shell常用的文本处理命令总结

awk:awk ‘print{$1,$2}’ grade.txt             打印单独记录awk ‘BEGIN print{“Name         Belt/n-------------------------------”} print{$1”/t”$4} END {print “end-of-report”}’ grade.txt          打印报告头尾awk ‘$4 ~ /48/ {print $0}’ grade.txt                   匹配awk ‘$4

2010-12-03 09:47:00 901 1

转载 C++中内存分配、函数调用和返回值

一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系

2010-11-17 22:05:00 931

转载 C++虚函数表解析(2)

多重继承(无虚函数覆盖)<br />下面,再让我们来看看多重继承中的情况,假设有下面这样一个类的继承关系。注意:子类并没有覆盖父类的函数。<br /> <br />对于子类实例中的虚函数表,是下面这个样子:<br /> <br />我们可以看到:<br />1)每个父类都有自己的虚表。(这样做就是为了解决不同的父类类型的指针指向同一个子类实例,而能够调用到实际的函数)<br />2)子类的成员函数被放到了第一个父类的表中。(所谓的第一个父类是按照声明顺序来判断的)多重继承(有虚函数覆盖)<br />下面我们

2010-11-12 10:19:00 771

转载 C++虚函数表解析(1)

C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家一个清晰的剖析。当然,相同的文

2010-11-12 09:54:00 437

原创 求序列连续数最大和

<br />-2,11,-4,13,-5,-2<br />思路:序列a[n],记<br />f(i):前i个数中连续数最大和;<br />end(i):以下标i结尾的前i个数中连续数最大和。<br />有以下递推式:<br />f(i) = max{f(i-1), end(i)};<br />当end(i-1)<=0,end(i) = a[i];否则end(i) = end(i-1)+a[i]。<br />以front,rear指针记录连续最大和的首尾下标。<br />程序如下:<br />#include

2010-11-11 16:28:00 726

转载 求二叉树中两节点的最近公共祖先

<br />思路:最近公共祖先有一个好的特点,设A,B两个节点的过最近公共祖先C,那么A,B必然在C的两支上。<br />程序:<br />#include <stdio.h>#include <stdlib.h>struct Node{ const Node *left, *right; const char* name; Node(const Node *left, const Node *right, const char* name)

2010-11-11 15:40:00 1925

转载 四种类型转换

<br />Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意?<br />A:转换的含义是通过改变一个变量的类型为别的类型从而改变该变量的表示方式。为了类型转换一个简单对象为另一个对象你会使用传统的类型转换操作符。比如,为了转换一个类型为doubole的浮点数的指针到整型:<br />代码:<br />int i;<br />double d;<br />i = (int) d;<br />或者:<br />i

2010-11-10 22:10:00 618

转载 剖析Linux系统启动过程

<br /> 当用户打开PC的电源,BIOS开机自检,按BIOS中设置的启动设备(通常是硬盘)启动,接着启动设备上安装的引导程序lilo或grub开始引导Linux,Linux首先进行内核的引导,接下来执行init程序,init程序调用了rc.sysinit和rc等程序,rc.sysinit和rc当完成系统初始化和运行服务的任务后,返回init;init启动了mingetty后,打开了终端供用户登录系统,用户登录成功后进入了Shell,这样就完成了从开机到登录的整个启动过程。<br /><br /> <br

2010-11-10 22:08:00 614

原创 CreateProcess()输出到文件

<br />利用CreateProcess()创建子进程,并输出到文件,主要步骤如下:<br />//首先用CreateFile创建文件,得到文件句柄。HANDLE hFile = CreateFile(m_sAllPath.c_str(),GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,&sa,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);if (hFile == INVALID_HANDLE_VALUE) {

2010-11-10 22:06:00 1940

原创 探寻struct ipq_packet_msg结构体大小

<br />问题来源:<br />在Ubuntu主机上添加一条iptables命令:sudo iptables -A INPUT -p icmp -j QUEUE,将使得流入该系统的icmp数据包由内核转发到IP Queue中,用户空间的应用程序通过netlink协议与内核空间进行通信,将从IP Queue队列中读取转发的icmp数据包。 内核空间向用户空间转发数据包时,包括一个netlink消息头,接着一个struct ipq_packet_msg结构体,最后是IP数据包。<br />当从一个window

2010-11-10 22:05:00 1670

原创 Linux2.4系列内核对于网络数据的处理

<br />为了更好的了解Netfilter的工作机理,非常有必要先来分析一下Linux2.4系列内核对于网络数据是如何处理的。以下的分析全部基于以太网和IPv4协议。<br />1 收到数据,中断发生<br />通常的,当一块网卡接收到属于其自己MAC地址或者广播的以太网络数据帧时,就会引发一个中断,网卡驱动的中断处理程序获得机会,通过I/O,DMA复制网络帧数据到内存中。然后网络驱动程序将创建一个skb结构,将网络帧数据填充,设置时间戳,区分类型后,将skb送入对应的包接收队列(其实就是添加到系统中的一

2010-11-10 22:04:00 838

原创 C和C++分别读取文本文件的方式

<br />在我们的工作学习中,经常涉及到读取文本文件的操作,其实这些简单的常用操作我们应当熟记于心。<br />本文分别列举了C和C++下按照每行的格式读取文本文件,其中C++的实现中将单词以空格为分隔符输出,可以看到C++对字符串的处理确实要强大一些。<br />c实现:<br />#include <stdio.h>#include <string.h>#include <unistd.h>#define MAX_LINE 500int main(int argc, char**

2010-11-10 22:03:00 2389

原创 网络编程中wait与waitpid的区别

<br />问题:   <br />    一个unp中第五章的例子:有5个客户端几乎同时向服务器发送终止连接,这时在服务器端将几乎同时产生SIGCHILD信号,然而信号在内核中是不排队的,信号处理函数只执行一次(我的理解是5个信号几乎同时到达,当第一个信号被处理时,其他4个信号是未决的,当信号处理函数处理完第一个到达的信号后,由于没有产生信号,信号处理函数将不会被再次调用)。那么在目前情况下,父进程怎样才能捕获到所有的子进程的退出状态呢?<br /> <br />分析:<br />    在SIGCHLD

2010-11-10 22:03:00 866

原创 尾递归

<br />今天在看《数据结构与算法分析》时,遇到了尾递归这一词,在网上查了资料,遂以此记录下来:<br />转http://blog.csdn.net/lee576/archive/2008/07/31/2747517.aspx<br />尾递归 - Tail Recursion<br /><br />尾递归是针对传统的递归算法而言的, 传统的递归算法在很多时候被视为洪水猛兽. 它的名声狼籍, 好像永远和低效联系在一起.<br /><br />尾递归就是从最后开始计算, 每递归一次就算出相应的结果, 也就

2010-11-10 22:00:00 724

原创 二叉查找树的删除操作

<br />这两天断断续续看了BST的内容,对其删除操作的递归实现有了一定理解。<br />删除操作的递归实现:<br />SearchTree Delete(ElementType X, SearchTree T){ Position TmpCell; if (T == NULL) printf("Element not found/n"); else if (X < T->Element) T->Left = Delete(X, T-

2010-11-10 21:59:00 912

原创 gcc编译链接时指定头文件和库文件搜索路径

<br />问题:<br />sudo gcc rongji_ssl.c -lssl<br />提示找不到openssl/ssl.h等头文件的错误<br />原因:<br />gcc在系统默认指定的头文件搜索目录下没找到,默认的头文件搜索目录为:<br />/usr/include<br />/usr/local/include<br />以及/usr/lib/gcc下的一些include目录<br />注意以上搜索目录也包含子目录!<br />解决:<br />方法1:sudo cp -rf /usr/l

2010-11-10 21:58:00 6888

原创 cin.ignore()

<br />一段C++程序:<br />#include <iostream>#include <string>using namespace std;int main( ) { string s; cin >> s; string s2; //cin.ignore(); getline(cin, s2); cout << "s2:" << s2 << endl; return 0;}<br />如果不加cin.ig

2010-11-10 21:57:00 1440 1

原创 POJ 1573

<br />纸片翻转,问题详见:http://acm.pku.edu.cn/JudgeOnline/problem?id=1753<br />======================<br />问题分析<br />======================<br />状态:<br />若将b看成1,w看成0,一个状态对应一个值(0~65535),记为id,最多有2^16个id。<br />翻转:<br />将当前纸片的周围四个方向(如果有)进行翻转,得到下一个id。某纸片翻转后,当前id与翻转的位对应

2010-11-10 21:56:00 492

原创 POJ 1088

<br />5 5<br />1 2 3 4 5<br />16 17 18 19 6<br />15 24 25 20 7<br />14 23 22 21 8<br />13 12 11 10 9<br />典型的动态规划算法,满足(1)(2)两条件:<br />(1)重复子问题:如24->17,需要求17的最长路径,而18->17,也需要求17的最长路径,这就存在一个重复的子问题。<br />(2)最优子结构:从24出发的最长路径,包括了23出发的最长路径。。。,即包含了最优的子结构。<br />设计

2010-11-10 21:54:00 434

原创 mysqlimport识别gbk字符集

<br />在使用mysqlimport工具将文本中数据导入到mysql数据库中时,出现了以下的问题:<br />/home/pz>mysqlimport -u pz -pxxxx --local --delete --fields-terminated-by=, snort rules.txt<br />mysqlimport: Character set 'gbk' is not a compiled character set and is not specified in the '/usr/loc

2010-11-10 21:53:00 1141

原创 POJ 2479

<br />输入:<br />1 -1 2 2 3 -3 4 -4 5 -5<br />思路:<br />这是一个动态规划的问题,满足DP的两个条件:重叠子问题和最优子结构。<br />采用自底向上的设计策略,先从左至右计算出每个段的最大子序列和a[i],再反过来,从右至左计算每个段的最大子序列和b[i],最后遍历每个段,求出a[i]+b[i]的最大值,即为最后所求值。<br />代码:<br />#include <iostream>#include <stdio.h>using namespac

2010-11-10 21:52:00 824

原创 POJ1328

<br />Radar Installation<br />题目:给一些孤岛(用坐标x,y表示),x轴为海岸线,在海岸线上建立几个雷达站,每个雷达站的覆盖区域为一个圆,半径给出。问最少要几个雷达站,才能覆盖所有孤岛。<br />这个问题需要注意两点:<br />1、将问题转化<br />以每个孤岛为圆心,已知半径画圆,交海岸线于两点,得到一个区间。在区间上任一一点建立雷达站均可覆盖目标点。于是问题变为:给n个区间,选出最少的点使得每个区间至少有一个点。<br />2、贪心算法<br />将每个区间按左边进行

2010-11-10 21:50:00 649

原创 POJ 2593

<br />Max Sequence:求两个子序列的最大和,此题与POJ 2479算法完全一致,均采用动态规划求解。<br />测试数据:<br />10<br />1 -1 2 2 3 -3 4 -4 5 -5<br />5<br />-5 9 -5 11 20<br />6<br />3 3 -3 4 -2 1<br />0<br />正确的运行结果是:<br />13<br />40<br />10<br />代码如下#include <iostream>using namespace std;

2010-11-10 21:48:00 913

原创 动态规划与贪心算法的区别与联系

<br />区别:<br />动态规划<br />全局最优解中一定包含某个局部最优解,但不一定包含前一个局部最优解,因此需要记录之前的所有最优解。<br />条件:最优子结构;重叠子问题。<br />方法:自底向上构造子问题的解。<br />例子:子序列最大和问题,滑雪问题<br />贪心算法<br />条件:每一步的最优解一定依赖上一步的最优解。<br />方法:从问题的某一个初始解出发逐步逼近给定的目标,以尽可能快的地求得更好的解。当达到某算法中的某一步不能再继续前进时,算法停止。<br />存在问题:

2010-11-10 21:43:00 8238

原创 《C专家编程》读书笔记

<br />/*3.6节*/<br />typedef 与宏主要有两点区别:<br />(1)可以用其他类型说明符对宏类型名进行扩展,但对typedef所定义的类型名却不能这么做。如:<br />#define peach int<br />unsigned peach i;//没问题<br />typedef int peach;<br />unsigned peach i;//错误<br />(2)在连续的几个变量的声明中,用typedef定义的类型能够保证声明中所有的变量均为同一种类型,而用#defi

2010-11-10 21:42:00 803

原创 POJ 1001 Exponentiation

<br />参考了《Programming_guide_and_online_practice-4.23bylwx》的第七章大整数计算,解题思路是先将浮点数转化成大整数进行计算,再算出小数的位数,最后打印输出。<br />POJ上题目中给的数据都能测试通过,但提交是Wrong Answer,可能是没考虑特殊的输入。这里仅贴出代码,供参考。<br />#include <iostream>#include <string.h>#define MAX_LEN 102using namespace

2010-11-10 21:39:00 949

原创 POJ 1047

<br />问题描述:判断一个数是否为“环数”。此题较简单,思路是:将大整数的每一位存入数组元素,再对该数乘以位数,从2->n,对乘积的结果与原来的大整数比较,如果不同,则退出不再乘以后面的位数;若所有位数都乘完了,并且都满足条件,则判断为是“环数”。<br /> #include <iostream>#include <string.h>#define MAX_LEN 60using namespace std;unsigned aNum[MAX_LEN+10];unsigne

2010-11-10 21:37:00 1030

原创 常用内部排序的实现

<br />/**归并排序,改写自《数据结构C语言版》,P284*/#include <iostream>#define LENGTH 20using namespace std;void output(int* a, int len){ int i; for (i = 0; i < len; i++) cout << a[i] << " "; cout << endl;}//将a[i..m]到a[m+1..n]归并到b[i..n]void

2010-11-10 21:33:00 478

原创 二叉树三种遍历方式的递归与非递归实现

 先序遍历——递归void preorder(node* root){if (root) printf(“%d/n”, root->value);else return;preorder(root->left);preorder(root->right);}先序遍历——非递归void preoder(node* root){element* theStack;void* data;node* curNode;CreateStack(&theSta

2010-11-10 21:24:00 508

转载 C++语言性能瓶颈

<br />在C++程序中,创建/销毁对象是影响性能的一个非常突出的操作。首先,如果是从全局堆中生成对象,则需要首先进行动态内存分配操作。众所周知,动态分配/回收在C/C++程序中一直都是非常耗时的。因为牵涉到寻找匹配大小的内存块,找到后可能还需要截断处理,然后还需要修改维护全局堆内存使用情况信息的链表等。因为意识到频繁的内存操作会严重影响性能,所以已经发展出很多技术用来缓解和降低这种影响,例如内存池技术。<br />尽量少使用值传递,而使用常量引用传递。<br />虚函数带来的开销:<br />  ① 空

2010-11-10 21:17:00 1178

自己编写的shell程序

本程序为一个简易的shell程序,实现在myshell.c中。功能包括:(1)后台运行命令;(2)输入输出重定向;(3)执行管道命令;(4)执行多个命令等。 另附详细设计文档、用户手册、README等。

2009-09-22

空空如也

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

TA关注的人

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