摘要: 输入:一个数组.输出:数组中出现次数超过一半的数字.注:如果该数字不存在,则需对该数组进行检查,下面的程序假设所要查找的数字是存在的. 1 #include 2 #include 3 4 static int find(int *, int); 5 6 int main(int argc, ... 阅读全文
posted @ 2014-10-16 14:53 yyxayz 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 求给定输入中第k大的数的算法。这是一个常见面试题,通常的解法也很明显,使用类似快排的思想。每趟运行,把数组的值分成两部分,一部分比pivot大,一部分比pivot小,因为我们知道pivot在数组中的位置,所以比较k和pivot的位置就知道第k大的值在哪个范围,我们不断的进行recursion, 直到... 阅读全文
posted @ 2014-10-16 10:56 yyxayz 阅读(2569) 评论(1) 推荐(0) 编辑
摘要: randomized_select函数的期望运行时间是Θ(n),这里假设输入数据都是互异的.它返回数组A[p, r]中第i小的元素.该函数最坏情况运行时间为Θ(n2),即使是找最小元素也是如此,以为在每次划分时可能极不走运地总是按余下的元素中最大的来进行划分,而划分操作需要Θ(n)时间.我们也将看到... 阅读全文
posted @ 2014-10-16 10:32 yyxayz 阅读(1110) 评论(0) 推荐(0) 编辑
摘要: VIM默认情况下,函数名是不会高亮的,将下面这段代码添加到/usr/share/vim/vim73/syntax/c.vim文件的末尾即可:"highlight Functionssyn match cFunctions "\[^()]*)("me=e-2syn match cFunctions "... 阅读全文
posted @ 2014-10-16 09:36 yyxayz 阅读(2379) 评论(0) 推荐(0) 编辑
摘要: 在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你... 阅读全文
posted @ 2014-10-16 09:07 yyxayz 阅读(330) 评论(0) 推荐(0) 编辑