自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hello3521

无聊ing

  • 博客(29)
  • 收藏
  • 关注

转载 通过 ulimit 改善系统性能

出自:http://www.ibm.com/developerworks/cn/linux/l-cn-ulimit/  概述系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件下保证程序的运作,ulimit 是我们在

2011-10-10 11:16:02 306

转载 linux date

Linux date命令的用法在linux shell编程中,经常用到日期的加减运算以前都是自己通过expr函数计算,很麻烦其实date命令本身提供了日期的加减运算非常方便。例如:得到昨天的时间date +%Y%m%d --date="-1 day"

2011-09-19 13:45:50 320

原创 utf8串输出中文

bool Utf8ToZhong(const std::string &utf8_str, std::string *result_str) { if(utf8_str.size() == 0) { return false; } int move_flag = 0;

2011-09-16 13:52:10 610

转载 双数组trie原理

一、 基本构造Trie树是搜索树的一种,来自英文单词"Retrieval"的简写,可以建立有效的数据检索组织结构,是中文匹配分词算法中词典的一种常见实现。它本质上是一个确定的有限状态自动机(DFA),每个节点代表自动机的一个状态。在词典中这此状态包括"词前缀","已成词"等。

2011-09-15 11:28:11 908

转载 双数组trie

由于前面写的朴素bayes分类器,针对英文文本进行统计分析的,现在要想用于中文文本,则需要对中文文本进行分词。找了好几个分词系统,比如张华平老师的ICTCLAS、吕震宇老师用c#改写的ICTCLAS版本、KTDictSeg分词系统V1.3.01和清华王小飞写的双数组trie树中文

2011-09-15 10:48:46 2716

原创 GB2312, GBK, utf8

inline int hashGb2312(const char* ch){//检验是不是gb2312编码if ( ((ch[0] + 256) % 256 - 0xA0 87) )//gb2312汉字编码高位从第16区到第87区{   return -1;}if ( ((ch[1] + 256) % 256 - 0xA0 94) )//gb2312汉字编码低位从1

2011-09-14 18:08:22 483

转载 【转】 trie树、B树、B-树、B+树、B*树

红黑树rbtree 二叉排序树map 就是采用红黑树存储的,红黑树(RB Tree)是平衡二叉树,其优点就是树到叶子节点深度一致,查找的效率也就一样,为logN.在实行查找,插入,删除的效率都一致,而当是全部静态数据时,没有太多优势,可能采用hash表各合适。hash_m

2011-09-14 10:55:12 410

转载 检查数组越界等

1、如何定位全局数组的写越界,一个被大量引用的全局数组int a[100],被写越界了,这样的情况如何定位? 最简单的方法是,将数组a[100]改为a[101],然后对访问a[100]的地方设置断点进行调试。因为a[100]应该是没有人访问的,如果访问就是越界访问,直接

2011-09-04 23:49:55 1826

转载 顺时针螺旋法则(clockwise/spiral rule)教你认变量类型

This was posted to comp.lang.c by its author, David Anderson, on 1994-05-06.] [本帖层在1994-05-06被它的作者David Anderson发到comp.lang.c邮件组中]   【

2011-09-02 17:44:46 703

转载 随机取样问题

随机取样问题,在《计算机程序设计艺术》(volume 2 chapter 3)中得到了详细的讲解,关于该问题的详细探讨可以翻阅该书相应章节。随机取样问题可以分为:1、             确定数目元素的随机取样,可以表述为:从N个元素中获得K个相异且随机的元素。

2011-09-02 15:51:43 621

原创 c++ new

1993年前,C++一直要求在内存分配失败时operator new要返回0,现在则是要求operator new抛出std::bad_alloc异常。很多C++程序是在编译器开始支持新规范前写的。C++标准委员会不想放弃那些已有的遵循返回0规范的代码,所以他们提供了另外形式的o

2011-09-02 14:43:56 302

转载 练思路的题

1、有1亿个浮点数,请找出其中对大的10000个。提示:假设每个浮点数占4个字节,1亿个浮点数就要站到相当大的空间,因此不能一次将全部读入内存进行排序。      可以发现如果一次读入那么机器的内存肯定是受不了的,因此我们只有想其他方法解决,解决方式为了高效还是得符合一定的该

2011-09-01 23:43:27 835

转载 逻辑推理题

1、据说此题曾被用来应聘微软公司的高级人才。嘿嘿!各位可有兴趣试试身手,若有志者,看招了!  有两间房,一间房里有三盏灯,另一间房有控制这三盏灯的开关(这两间房是分割开的,毫无联系)。现在要你分别进这两间房一次,然后判断出这三盏分别是由哪个开关控制,你能想出办法吗?(注意:每

2011-09-01 23:34:58 4955

转载 数组越界写入破坏程序堆栈导致的crash

最近在调查内存泄漏和程序不定期crash的问题,其中有一个横展开观点是:对数组越界写入导致破坏程序堆栈导致的crash.原因是什么,首先必须了解内存的布局,如下图:自底向上,内存中依次存放着只读的程序代码和数据,全局变量和静态变量,堆中的动态申请变量和堆栈中的自动

2011-08-31 15:35:26 2230

原创 整数二进制中1的个数

#includeint count(int n){ int sum = 0; while(n) { n = n&(n-1); sum++; } return sum;} int main (){ int sum = 0;

2011-08-30 23:30:34 276

转载 Linux命令之sort的使用

功能说明:将文本文件内容加以排序。 语 法: sort [-bcdfimMnr][-o输出文件][-t分隔字符][+起始栏位-结束栏位][--help][--verison][文件] 补充说明:sort可针对文本文件的内容,以行为单位来排序。 参 数: -b忽略每行前面开始出的空

2011-08-30 18:10:05 299

转载 随机概率发生器

题目: 已知一随机发生器,产生0的概率是p,产生1的概率是1-p,现在要你构造一个发生器,使得它构造0和1的概率均为1/2;构造一个发生器,使得它构造1、2、3的概率均为1/3;...,构造一个发生器,使得它构造1、2、3、...n的概率均为1/n,要求复杂度最低。

2011-08-30 16:33:51 645

原创 找出数组中满足其左边的数都小于等于它,右边的数都大于等于它的数

问题描述:一个int数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。#include using namespace std;int main() { int

2011-08-29 17:20:14 1767

原创 找出所有相反的串对

题目:一个文件,内含一千万行字符串,每个字符串在1K以内,要求找出所有相反的串对,如abc和cba。解题思路: O(n)用trie-tree实现1.节点结构typedef struct TreeNode { int number_; //原字符串对应

2011-08-29 14:45:45 1642 2

原创 在字符串中删除特定的字符

题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。解法一: O(N+M)#include #define

2011-08-28 23:04:12 462

原创 找出数组中2个只出现了一次的数字

题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。#include int main() { int a[] = {1, 2, 0, 2, 1, 9, 3, 9,

2011-08-28 22:20:18 286

转载 const相关

关于C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,参考了康建东兄的const使用详解一文,对其中进行了一些补充,写下了本文。 1.       const常量,如const int max = 100;  优点:const常量有数据

2011-08-26 11:14:22 229

原创 去掉重复的数字

题目:请把一个整形数组中重复的数字去掉。例如: 1,   2,   0,   2,   -1,   999,   3,   999,   88 答案应该是: 1,   2,   0,   -1,   999,   3,   88 解法一:O(N2)#i

2011-08-26 01:02:31 962

原创 利用tree匹配user_agent

利用trietree树结构,使其匹配过程可以在O(n)内搞定 #ifndef MATCH_USER_AGENT_H_#define MATCH_USER_AGENT_H_#include #include using std::string;u

2011-08-25 17:23:17 378

原创 堆排序

不稳定   O(nlogn)#include using namespace std;void FindMaxInHeap(int arr[], const int size) { //使堆顶始终最大 for (int j = size - 1; j > 0;

2011-08-22 23:57:25 196

原创 归并排序(C)

稳定  O(nlogn)#include #include void ArrayCopy(int a[], int b[], int low, int high) {  while (low     a[low] = b[low];    ++lo

2011-08-18 23:23:31 298

转载 ZZ 一致性hash(负载分担)

consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees中被提出,目前在 cache 系统中应用越来越广泛;1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么

2011-08-17 21:36:38 316

原创 基数排序(C)

稳定,O(n) #include #include int Max(int a[], int n) {  int max_num = a[0];  int i = 1;  while (i   if (max_num       max_num

2011-08-17 01:35:19 246

原创 快速排序(C)

不稳定、时间复杂度O(nlogn)  空间复杂度 O(n)#includeint Partition(int a[], int low, int high) {  int pivotkey = a[low];  while (low  while ((low

2011-08-17 00:30:32 1469

空空如也

空空如也

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

TA关注的人

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