10 2014 档案
摘要:自动机,KMP算法,Extend-KMP,后缀树,后缀数组,trie树,trie图及其应用 涉及到字符串的问题,无外乎这样一些算法和数据结构:自动机,KMP算法,Extend-KMP,后缀树,后缀数组,trie树,trie图及其应用。 当然这些都是比较高级的数据结构和算法,而这里面最常用和最熟悉的大...
阅读全文
摘要:在查找中,虽然hash表查找非常迅速,但是随着数据的种类增多,hash表长会变得更长,且冲突也会越来越多,那么如何能实现无论在多大数据量的情况下,查找依然是高性能的呢? 在1978年,Leo J.Guibas 与 Robert Sedgewick写了一篇论文中谈到了一种较好的用于查找的数据结构-...
阅读全文
摘要:特性: 二叉搜索树(二叉排序树、二叉查找树)或者是一颗空树;或者是具有下列性质的二叉树:(1)若它的左子树不空,则左子树上的所有结点的值均小于它的根结点的值;(2)若它的右子树不空,则右子树上的所有结点的值均大于它的根结点的值;(3)它的左、右子树也分别为二叉搜索树。中序遍历可以得到一个有序序列。...
阅读全文
摘要:特性Trie树属于树形结构,又称字典树、前缀树。查询效率比红黑树和哈希表都要快。假设有这么一种应用场景:有若干个英文单词,需要快速查找某个单词是否存在于字典中。使 用Trie时先从根节点开始查找,直至匹配到给出字符串的最后一个节点。在建立字典树结构时,预先把带有相同前缀的单词合并在同一节点,直至两个...
阅读全文
摘要:题目:输入一个二叉树的跟节点,判断该树是不是平衡二叉树.给出两种解法.
阅读全文
摘要:题目:统计一个数字在排序数组中出现的次数.例如,输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于在这个数组中出现了4次,因此输出4.使用二分查找,基本思想:先查找该数字第一次出现的位置,然后查找该数字最后一次出现的位置.代码如下: 1 #include 2 #include 3...
阅读全文
摘要:递归的二分查找: 1 int search(int *a, int target, int p, int r) 2 { 3 if (p target)11 return search(a, target, p, mid - 1);12 else13 ...
阅读全文
摘要:WelcomeToMyBitTricks1.获得int型最大值intgetMaxInt(){return(1>1;//除以2}6.乘以2的m次方intmulTwoPower(intn,intm){//计算n*(2^m)returnn>m;}8.判断一个数的奇偶性booleanisOddNumber(...
阅读全文
摘要:IntroductionThe limits.h header determines various properties of the various variable types. The macros defined in this header limits the values of va...
阅读全文
摘要:要考虑的东西实在也挺多的。总结如下:1 前面空格分隔符号的时候2 第一个符号位处理+ -3 遇到非数字字符退出4 为正数的时候,大于INT_MAX上溢5 为负数的时候, 小于INT_MIN下溢6 为空字符串或者空指针的时候 1 int atoi(const char *str) 2 {...
阅读全文
摘要:输入第一行一个整数N,表示测试数据组数。接下来的N*2行,每两行表示一个测试数据。在每一个测试数据中,第一行为模式串,由不超过10^4个大写字母组成,第二行为原串,由不超过10^6个大写字母组成。其中N 2 #include 3 #include 4 5 #define N 20 6 #de...
阅读全文
摘要:一、线性分类器:首先给出一个非常非常简单的分类问题(线性可分),我们要用一条直线,将下图中黑色的点和白色的点分开,很显然,图上的这条直线就是我们要求的直线之一(可以有无数条这样的直线) 假如说,我们令黑色的点 = -1, 白色的点 = +1,直线f(x) = w.x + b,这儿的x、w是向量,其实...
阅读全文
摘要:经过对Logistic回归理论的学习,推导出取对数后的似然函数为 现在我们的目的是求一个向量,使得最大。其中 对这个似然函数求偏导后得到 根据梯度上升算法有 进一步得到我们可以初始化向量为0,或者随机值,然后进行迭代达到指定的精度为止。1 def sigmoid(inX):2 retur...
阅读全文
摘要:python中r的用法,r'str'表示raw string,既忽略转义字符。因为和windows不一样,python中认为\就是转义字符escape sequences的标志。在python2.x中,unicode字符串需要在字符串前加u来表示,比如 str=u'汉字'而在python3.x中,u...
阅读全文
摘要:中文编码问题是用中文的程序员经常头大的问题,在python下也是如此,那么应该怎么理解和解决python的编码问题呢?我们要知道python内部使用的是unicode编码,而外部却要面对千奇百怪的各种编码,比如作为中国程序经常要面对的gbk,gb2312,utf8等,那这些编码是怎么转换成内部的un...
阅读全文
摘要:输出最大长度的回文子串。 1 string longestPalindrome(string s) 2 { 3 4 5 int id, mx, i, j, len, maxlen; 6 vector cvec; 7 vector ivec; 8 string st...
阅读全文
摘要:题目:Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters...
阅读全文
摘要:python print格式化输出。1. 打印字符串print ("His name is %s"%("Aviad"))效果:2.打印整数print ("He is %d years old"%(25))效果:3.打印浮点数print ("His height is %f m"%(1.83))效果:...
阅读全文
摘要:strip函数原型声明:s为字符串,rm为要删除的字符序列. 只能删除开头或是结尾的字符或是字符串。不能删除中间的字符或是字符串。s.strip(rm) 删除s字符串中开头、结尾处,位于rm删除序列的字符s.lstrip(rm) 删除s字符串中开头处,位于rm删除序列的字符s.rstrip(rm) ...
阅读全文
摘要:operator.itemgetter函数operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),下面看例子。a = [1,2,3]>>> b=operator.itemgetter(1) //定义函数b,获取对象的第1个域...
阅读全文
摘要:在Python中使用help帮助>>> import numpy>>> help(numpy.argsort)Help on function argsort in module numpy.core.fromnumeric:argsort(a, axis=-1, kind='quicksort',...
阅读全文
摘要:http://blog.csdn.net/nkwangjie/article/details/17298851
阅读全文
摘要:看起来挺简单的样子,但是在给sum函数中加入参数。sum(a,axis=0)或者是.sum(axis=1) 就有点不解了 在我实验以后发现 我们平时用的sum应该是默认的axis=0 就是普通的相加 而当加入axis=1以后就是将一个矩阵的每一行向量相加 例如: import numpy as np
阅读全文
摘要:tile函数位于python模块numpy.lib.shape_base中,他的功能是重复某个数组。函数的形式是tile(A,reps)函数参数说明中提到A和reps都是array_like的,什么是array_like的parameter呢?在网上查了一下,始终搞不明白,便把熟悉的python数据...
阅读全文
摘要:1 #if 0 2 1,sscanf():从一个字符串中读进与指定格式相符的数据. 3 2,sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。 4 3,关于正则表达式: 5 (1)%[..],当字符属于方括号里表达式表示的字符集时...
阅读全文
摘要:int snprintf(char *restrict buf, size_t n, const char * restrictformat, ...);函数说明:最多从源串中拷贝n-1个字符到目标串中,然后再在后面加一个0。所以如果目标串的大小为n的话,将不会溢出。函数返回值:若成功则返回欲写入的...
阅读全文
摘要:函数名: scanf功 能: 执行格式化输入用 法: int scanf(char *format[,argument,...]);scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。其调用格式为: s...
阅读全文
摘要:在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因...
阅读全文
摘要:有监督学习:对具有概念标记(分类)的训练样本进行学习,以尽可能对训练样本集外的数据进行标记(分类)预测。这里,所有的标记(分类)是已知的。因此,训练样本的岐义性低。无监督学习:对没有概念标记(分类)的训练样本进行学习,以发现训练样本集中的结构性知识。这里,所有的标记(分类)是未知的。因此,训练样本的...
阅读全文
摘要:输入:一个数组.输出:数组中出现次数超过一半的数字.注:如果该数字不存在,则需对该数组进行检查,下面的程序假设所要查找的数字是存在的. 1 #include 2 #include 3 4 static int find(int *, int); 5 6 int main(int argc, ...
阅读全文
摘要:求给定输入中第k大的数的算法。这是一个常见面试题,通常的解法也很明显,使用类似快排的思想。每趟运行,把数组的值分成两部分,一部分比pivot大,一部分比pivot小,因为我们知道pivot在数组中的位置,所以比较k和pivot的位置就知道第k大的值在哪个范围,我们不断的进行recursion, 直到...
阅读全文
摘要:randomized_select函数的期望运行时间是Θ(n),这里假设输入数据都是互异的.它返回数组A[p, r]中第i小的元素.该函数最坏情况运行时间为Θ(n2),即使是找最小元素也是如此,以为在每次划分时可能极不走运地总是按余下的元素中最大的来进行划分,而划分操作需要Θ(n)时间.我们也将看到...
阅读全文
摘要:VIM默认情况下,函数名是不会高亮的,将下面这段代码添加到/usr/share/vim/vim73/syntax/c.vim文件的末尾即可:"highlight Functionssyn match cFunctions "\[^()]*)("me=e-2syn match cFunctions "...
阅读全文
摘要:在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你...
阅读全文
摘要:#include typedef struct BinaryTreeNode{ int key; struct BinaryTreeNode *ltree; struct BinaryTreeNode *rtree;}BinaryTreeNode;static BinaryTree...
阅读全文
摘要:1. 问题描述:先序非递归建立一颗以二叉链表为存储结构的二叉树。例如建立如下所示的一颗二叉树 A / \ B E / \ / C D F ...
阅读全文
摘要:下面程序有几个地方注意一下,见注释. 1 #include 2 #include 3 4 /*以后写结构体,都使用该格式.即typedef标注.上下ListNode要相同.*/ 5 typedef struct ListNode 6 { 7 int key; 8 struct ...
阅读全文
摘要:标准头文件包括: 一、标准定义() 文件里包含了标准库的一些常用定义,无论我们包含哪个标准头文件,都会被自动包含进来。 这个文件里定义: l类型size_t(sizeof运算符的结果类型,是某个无符号整型); l类型ptrdiff_t(两个指针相减运算的结果类型,是某个有符号整型);l类型wchar...
阅读全文
摘要:当你在控制台模式下,无法通过“鼠标右键 > 关于”获取操作系统的信息。这时,在Linux下,你可以使用uname命令,帮助你完成这些工作。 Uname是unix name的缩写。在控制台中实际使用的时候只需键入uname。当你输入uname不带参数时,它仅仅显示你的操作系统的名字。# unameLi...
阅读全文
摘要:在google官网下载google chrome deb包,有32位和64位之分:怎么判断系统是32位还是64位的,可以用以下代码:int a = 3;int *p = &a;printf("%d\n, sizeof(p));直接使用终端安装:1.按 Ctrl+Alt+T 打开终端: 切换到ch...
阅读全文
摘要:代码一:联合体union的存放顺序是所有成员都从低地址开始存放,若处理器是Big_endian(从高字节到低字节存放数据)的,则返回0;若是Little_endian(从低字节到高字节存放数据)的,则返回1。 int checkCPU() { union w {...
阅读全文
摘要:#include #include #include void binary_num(int, int);int main( int argc, char* argv[] ) { int a = 30; binary_num(a, sizeof(a) * 8); print...
阅读全文
摘要:今天为调试一段代码,使用gcc将程序用-g选项重新编译。但是使用gdb进行debug时,仍然出现“no debug symbols found”的错误。仔细检查了一下Makefile,原来后面定义的连接选项中指定了-s。gcc的文档中说明如下:-sRemove all symbol table an...
阅读全文
摘要:系统平台下的开发工具、开发环境各有不同。LinuxC++/C开发所必需的一系列工具:1. vi(vim)文本编辑器一个UNIX世界标准的文本编辑器,简约而强大,不论作为开发人员还是系统管理员,熟练使用vi是一项基本的、且不可或缺的技能。2. gcc/g++C/C++编译器通过具体的示例讲解使用gcc...
阅读全文
摘要:控制字符(Control Character),出现于特定的信息文本中,表示某一控制功能的字符。在ASCⅡ码中,第0~31号及第127号(共33个)是控制字符或通讯专用字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(振铃)等;通讯专用字符:SOH(文头...
阅读全文
摘要:函数原型:extern char *strchr(char *str,char character)参数说明:str为一个字符串的指针,character为一个待查找字符。 所在库名:#include 函数功能:从字符串str中寻找字符character第一次出现的位置。 返回说明:返回指向第一次...
阅读全文
摘要:如果知道一个用户的用户ID或者登录名,可以通过getpwuid或getpwnam函数获得用户的登录信息.函数原型为: #include #include struct passwd *getpwnam(const char *name); struct p...
阅读全文
摘要:文章出处:http://blog.csdn.net/dengxiayehu/article/details/6330200Cscope的使用(领略Vim + Cscope的强大魅力)1、Cscope介绍 Cscope是类似于ctags一样的工具,但可以认为她是ctags的增强版,因为她比ctags能...
阅读全文
摘要:文章出处:http://blog.chinaunix.net/uid-26583794-id-3166083.html守护进程日志的实现syslogd守护进程用于解决守护进程的日志记录问题,而日志信息保存的位置和记录的信息级别是在syslogd守护进程的配置文件中设定的。守护进程 日志主要涉及3个函...
阅读全文
摘要:文章出处:http://blog.csdn.net/xx77009833/archive/2010/07/30/5776383.aspx 为了满足某些目的,进行日志记录是很有必要的。 在典型的 LINUX 安装中,/var/log/messages 包含所有的系统消息,/var/log/mail ...
阅读全文
摘要:原型:char *strrchr(const char *str, char c);#include 找一个字符c在另一个字符串str中末次出现的位置(也就是从str的右侧开始查找字符c首次出现的位置)。如果未能找到指定字符,那么函数将返回NULL。Thestrrchr function finds...
阅读全文
摘要:http://blog.csdn.net/zhll3377/article/details/7748086
阅读全文
摘要:HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。1、请求报文一个HTTP请求报文由请求行(requestline)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。(1)请求行请...
阅读全文
摘要:使用vim + cscope/ctags,就能够实现Source Insight的功能,可以很方便地查看分析源代码。关键词: vim, cscope, ctags, tags1. 查看vim是否支持cscope $ vim --version | grep cscope2. 编译支持cscope的...
阅读全文
摘要:第一步,需要安装一个名为w3m的软件工具,打开终端,输入如下命令sudoapt-getinstallw3m 第二步,安装好w3m之后,在终端里面启动w3m,打开一个网址,比如w3m www.baidu.com 。现在是不是看到了只有在浏览器下面才能看到的百度首页呢?如果您的终端不显示中文请。安装zh...
阅读全文
摘要:1、下载:http://www.acme.com/software/mini_httpd/mini_httpd-1.19.tar.gz2、解压:tar zxvf mini_httpd-1.19.tar.gz3、编译,安装:cd mini_httpd-1.19 make make install4、建...
阅读全文