- 博客(29)
- 收藏
- 关注
转载 通过 ulimit 改善系统性能
出自:http://www.ibm.com/developerworks/cn/linux/l-cn-ulimit/ 概述系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件下保证程序的运作,ulimit 是我们在
2011-10-10 11:16:02
344
转载 linux date
Linux date命令的用法在linux shell编程中,经常用到日期的加减运算以前都是自己通过expr函数计算,很麻烦其实date命令本身提供了日期的加减运算非常方便。例如:得到昨天的时间date +%Y%m%d --date="-1 day"
2011-09-19 13:45:50
354
原创 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
656
转载 双数组trie原理
一、 基本构造Trie树是搜索树的一种,来自英文单词"Retrieval"的简写,可以建立有效的数据检索组织结构,是中文匹配分词算法中词典的一种常见实现。它本质上是一个确定的有限状态自动机(DFA),每个节点代表自动机的一个状态。在词典中这此状态包括"词前缀","已成词"等。
2011-09-15 11:28:11
953
转载 双数组trie
由于前面写的朴素bayes分类器,针对英文文本进行统计分析的,现在要想用于中文文本,则需要对中文文本进行分词。找了好几个分词系统,比如张华平老师的ICTCLAS、吕震宇老师用c#改写的ICTCLAS版本、KTDictSeg分词系统V1.3.01和清华王小飞写的双数组trie树中文
2011-09-15 10:48:46
2767
原创 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
510
转载 【转】 trie树、B树、B-树、B+树、B*树
红黑树rbtree 二叉排序树map 就是采用红黑树存储的,红黑树(RB Tree)是平衡二叉树,其优点就是树到叶子节点深度一致,查找的效率也就一样,为logN.在实行查找,插入,删除的效率都一致,而当是全部静态数据时,没有太多优势,可能采用hash表各合适。hash_m
2011-09-14 10:55:12
449
转载 检查数组越界等
1、如何定位全局数组的写越界,一个被大量引用的全局数组int a[100],被写越界了,这样的情况如何定位? 最简单的方法是,将数组a[100]改为a[101],然后对访问a[100]的地方设置断点进行调试。因为a[100]应该是没有人访问的,如果访问就是越界访问,直接
2011-09-04 23:49:55
1966
转载 顺时针螺旋法则(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
800
转载 随机取样问题
随机取样问题,在《计算机程序设计艺术》(volume 2 chapter 3)中得到了详细的讲解,关于该问题的详细探讨可以翻阅该书相应章节。随机取样问题可以分为:1、 确定数目元素的随机取样,可以表述为:从N个元素中获得K个相异且随机的元素。
2011-09-02 15:51:43
713
原创 c++ new
1993年前,C++一直要求在内存分配失败时operator new要返回0,现在则是要求operator new抛出std::bad_alloc异常。很多C++程序是在编译器开始支持新规范前写的。C++标准委员会不想放弃那些已有的遵循返回0规范的代码,所以他们提供了另外形式的o
2011-09-02 14:43:56
332
转载 练思路的题
1、有1亿个浮点数,请找出其中对大的10000个。提示:假设每个浮点数占4个字节,1亿个浮点数就要站到相当大的空间,因此不能一次将全部读入内存进行排序。 可以发现如果一次读入那么机器的内存肯定是受不了的,因此我们只有想其他方法解决,解决方式为了高效还是得符合一定的该
2011-09-01 23:43:27
871
转载 逻辑推理题
1、据说此题曾被用来应聘微软公司的高级人才。嘿嘿!各位可有兴趣试试身手,若有志者,看招了! 有两间房,一间房里有三盏灯,另一间房有控制这三盏灯的开关(这两间房是分割开的,毫无联系)。现在要你分别进这两间房一次,然后判断出这三盏分别是由哪个开关控制,你能想出办法吗?(注意:每
2011-09-01 23:34:58
5076
转载 数组越界写入破坏程序堆栈导致的crash
最近在调查内存泄漏和程序不定期crash的问题,其中有一个横展开观点是:对数组越界写入导致破坏程序堆栈导致的crash.原因是什么,首先必须了解内存的布局,如下图:自底向上,内存中依次存放着只读的程序代码和数据,全局变量和静态变量,堆中的动态申请变量和堆栈中的自动
2011-08-31 15:35:26
2333
原创 整数二进制中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
315
转载 Linux命令之sort的使用
功能说明:将文本文件内容加以排序。 语 法: sort [-bcdfimMnr][-o输出文件][-t分隔字符][+起始栏位-结束栏位][--help][--verison][文件] 补充说明:sort可针对文本文件的内容,以行为单位来排序。 参 数: -b忽略每行前面开始出的空
2011-08-30 18:10:05
333
转载 随机概率发生器
题目: 已知一随机发生器,产生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
710
原创 找出数组中满足其左边的数都小于等于它,右边的数都大于等于它的数
问题描述:一个int数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。#include using namespace std;int main() { int
2011-08-29 17:20:14
1853
原创 找出所有相反的串对
题目:一个文件,内含一千万行字符串,每个字符串在1K以内,要求找出所有相反的串对,如abc和cba。解题思路: O(n)用trie-tree实现1.节点结构typedef struct TreeNode { int number_; //原字符串对应
2011-08-29 14:45:45
1682
1
原创 在字符串中删除特定的字符
题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。解法一: O(N+M)#include #define
2011-08-28 23:04:12
502
原创 找出数组中2个只出现了一次的数字
题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。#include int main() { int a[] = {1, 2, 0, 2, 1, 9, 3, 9,
2011-08-28 22:20:18
318
转载 const相关
关于C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,参考了康建东兄的const使用详解一文,对其中进行了一些补充,写下了本文。 1. const常量,如const int max = 100; 优点:const常量有数据
2011-08-26 11:14:22
260
原创 去掉重复的数字
题目:请把一个整形数组中重复的数字去掉。例如: 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
1009
原创 利用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
407
原创 堆排序
不稳定 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
220
原创 归并排序(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
322
转载 ZZ 一致性hash(负载分担)
consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees中被提出,目前在 cache 系统中应用越来越广泛;1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么
2011-08-17 21:36:38
354
原创 基数排序(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
282
原创 快速排序(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
1505
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人