摘要: 一、前言 这里稍微证明一下基于比较的排序算法的下界,采用决策树模型。下图是一个含三个元素的输入序列,采用插入排序算法的决策树。每一个结点里面包含(i,j)。左子树代表ij的情况。 各位,如果有跟我一样,半天看不懂的话,我就稍微解释一下。拿(1,2,3)这个序列的得出,稍作说明。在根节点处,1和2比较(输入位置为1的元素与输入位置为2的元素比较,不是1和2比较,下同)。1=lg(n!)。 又, lg(n!) = Θ(nlgn); 得到 h>=Ω(nlgn); 说明一下这个:lg(n!) =Θ(nlgn); (注:好长时间没看这些,应该是从来没有认真看过==.... 阅读全文
posted @ 2012-08-21 14:18 细胞核 阅读(1362) 评论(1) 推荐(1) 编辑
摘要: 花时间把所有的排序重新 写了一遍。。。。。(应该是认真写过一遍,学的时候根本就没写过) 写得时候才发现,理解不深刻。基本上 只是懂怎么做,不懂为什么。 把我写得记在这里,以后用得着了回来看看。 暂时就到这里吧,以后有时间,继续研究这些东西。在写出来。三个O(n2)的算法选择排序: 1 void SelectionSort(int *a,int n) 2 { 3 for(int i=0;ia[j+1])swap(&a[j],&a[j+1]);6 }插入排序: 1 void insertsort(int *a,int n) 2 { 3 int i,j; 4 int t... 阅读全文
posted @ 2012-08-08 15:36 细胞核 阅读(1975) 评论(5) 推荐(4) 编辑
摘要: 关于旋转字符串和回文这个断断续续看了好长时间。书中给了三种旋转字符串的方法1.juggling这个方法比较巧妙。过程就是:假设x[] = “abcdefgh" 长度为8 从第3位开始。 即 n=8 ,i=3执行下列交换x[0]与x[0+i%n] x[0+i%n]与 x[0+2*i%n] ……每次都要模n.一直到 再回到 x[0]为止。 即k*i%n==0的时候注意:如果没有完成全部交换,第二次就从x[1]开始 然后是, x[1+i],x[1+2i]......还是要模n.整个过程进行 i和n 的最大公约数次 就可以完成字符串的旋转。 (why? 此处没想通)这个问题,我至... 阅读全文
posted @ 2012-03-27 15:56 细胞核 阅读(1322) 评论(1) 推荐(0) 编辑
摘要: 最近看programming pearls 第二章 源码中有求最大公约数的代码。。看不太懂于是查到原理如下:(顺便简单叙述下两种求最大公约数的方法)(ps:以下大部分内容来自互联网,会有少量个人注解)一、更相减损法更相减损术,又称"等值算法"关于约分问题,实质是如何求分子,分母最大公约数的问题。《九章算术》中介绍了这个方法,叫做”更相减损术”,数学家刘徽对此法进行了明确的注解和说明,是一个实用的数学方法。例:今有九十一分之四十九,问约之得几何?我们用(91,49)表示91和49的最大公约数.按刘徽所说,分别列出分子,分母。“以少减多,更相减损,求其等也,以等数约之,等数约之 阅读全文
posted @ 2012-03-06 21:19 细胞核 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 对于我上次提到的问题:怎么开107这么大的数组?这个问题可能是比较弱智的。。。。鄙视自己。。。 之所以要开107这么大的数组,如果是int a[107],则我们就是用一个int 存储一个信息。这就是大量浪费。而我们知道一个int 有四个字节,在一般的机器上都是32位,即一个int可以表示32个0和1。所以我们数组就可以开成a[1+107/32],这样数组不就小了? 刚好COLUMN1的习题二就是要求实现这个问题:How would you implement bit vectors usingbitwise logical operations(such as and,or and s... 阅读全文
posted @ 2012-02-27 22:26 细胞核 阅读(245) 评论(0) 推荐(0) 编辑
摘要: COLUMU 1: CRACKING THE OYSTER (原版的英文,读起来确实费劲。。不过要坚持。。。。。我就写写大致内容,参考参考其他中文版)问题描述: 输入:小于n=107的正整数(positive integers),不重复出现,没有其他相关联的信息。 输出:按照从大到小的顺序排列 约束条件(constraints):1Mb(megabyte)的主内存空间,充足的硬盘存储。运行时间最多几分钟,最好10s,( a run time of ten seconds need not be decreased)程序设计: 这里谈到两个解决方案 1)归并排序(Merge ... 阅读全文
posted @ 2012-02-21 15:16 细胞核 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 过年在家,果然各种不给力啊 由于手头有个小项目,可能要用到,于是鼓捣在自己机子上搭个环境 ubuntu-11.04(natty) ps:我确实不喜欢natty,个人电脑上确实不好用,我还是用经典桌面。。。。。 查了半天,其实很简单~ 就是各种APT,至于手动编译,有空再去研究吧(鄙视自己。。。) 查到一篇博文,基本按照他的套路来 安装过程就是: (1)安装MYSQL sudo apt-get install mysql-server sudo apt-get install mysql-client (2)安装Apache ... 阅读全文
posted @ 2012-01-14 23:47 细胞核 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 此博客用于记录我的学习过程。。。。从零开始^_^ 今天看到一篇文章,觉得自己真的有必要好好思考。。。 确实现在的教育不能不说 是有问题的,造就了很多GPA奇高,却没有动手能力的人。自己也差不多快要归为这一类人 决定从现在开始,利用此博客记录自己的学习,思考。 希望此博客能够起到监督作用。 阅读全文
posted @ 2012-01-13 11:04 细胞核 阅读(85) 评论(0) 推荐(0) 编辑