算法
文章平均质量分 80
zxxapple
学生 热衷微软技术C#.net
展开
-
不借助其它变量交换两变量值的三种算法
在学习程序语言和进行程序设计的时候,交换两个变量的值是经常要使用的。通常我们的做法是:定义一个新的变量,借助它完成交换。代码如下:int a,b,t;a=10; b=15;t=a; a=b; b=t;这种算法易于理解,特别适合帮助初学者了解计算机程序的特点,是赋值语句的经典应用。在实际软件开发当中,此算法简单明了,不会产生歧义,便于程序员之间的交流,一般情况下碰到交换变量值...原创 2012-10-16 10:27:09 · 210 阅读 · 0 评论 -
各种排序算法的稳定性和时间复杂度小结
各种排序算法的稳定性和时间复杂度小结 冒泡法: 这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡: 复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。直接插入排序:O(n*n)选择排序:O(n*n)快速排序:平均时间复杂度log2(n)*n,所有内部排序方法中最高好的,大多数情况...原创 2012-10-16 09:22:03 · 111 阅读 · 0 评论 -
HDFS的缺点以及相应的改进策略
HDFS是一个不错的分布式文件系统,它有很多的优点,但也存在有一些缺点。目前而言,它在以下几个方面就效率不佳: 低延时访问 HDFS不太适合于那些要求低延时(数十毫秒)访问的应用程序,因为HDFS是设计用于大吞吐量数据的,这是以一定延时为代价的。HDFS是单Master的,所有的对文件的请求都要经过它,当请求多时,肯定会有延时。当前,对于那些有低延时要求的应用程序,HBase是一个...原创 2012-03-09 20:24:06 · 133 阅读 · 0 评论 -
求一个数列的最长非递增(递减)子序列
问题描述:给出一个数列,找出其中最长的单调递减(或递增)子序列。比如数列 4,2,6,3,1,5 最长递增子数列为2,3,5 相似的问题:1求最大和的子序列 2最大公共子串 3最大公共子序列 注意:串与...原创 2012-03-09 16:22:16 · 1105 阅读 · 0 评论 -
数列的排列与组合问题
关于数列的全排列已经另外一篇文章中提到过了, 下面来介绍下数列的组合问题: 例如;序列12345 如果输入m=3,原序列的长度n=5得到的组合数组是:123 124 125 134 135 145 234 235 245 345 如上得到所有的位数为2的组合方式,从上面的数我们也可以用序号表示:a[0],a[1],a[2],a[3],a[4],a[5] 得到的...原创 2012-03-03 19:25:08 · 801 阅读 · 0 评论 -
n-皇后以及全排列的问题--递归以及非递归的解法
首先说下全排序的问题 这个问题可以说是最经典的问题, 实现这个问题的最经典的方法莫过于递归实现了: 代码确实很简洁:(从网上转载---很多的)void perm(char *buf,int start,int end) { if(start==end){//当只要求对数组中一个字母进行全排列时,只要就按该数组输出即可 ...原创 2012-03-01 09:19:53 · 157 阅读 · 0 评论 -
关于链表追赶--链表中环的问题
关于环的问题,介绍几个个经典的题目:1.求链表倒数第k个结点 最经典,最常见的解法就是,设置两个指针p1,p2,一开始分别指向头结点,首先p2先移动k个节点,之后开始p1,p2每次移动1个节点,直到p2达到最后一个节点位置,那么p1指向的就是倒数第k个节点。 不过这种解法主要是针对单链表,且链表中不存在环的,如果是双向链表,或者是存在环的链表呢?在判断是否在最后...原创 2012-02-28 15:19:07 · 103 阅读 · 0 评论 -
非递减字符串问题
如题: 在非递减字符串中,从左到右的字符依次按ASC码非递减排列,例如 abcd,aaaa,aabb等等,现在假设字符串由a-j等10个字符串组成,请你确定特定长度的非递减字符串的数目。 算法思想:当我显现看到这个题,有些迷惑,为什么是十个字符串呢,,后才自然想到对应十个阿拉伯数字0-9. 问题就可以从这个地方解决。把某个长度的串看成是...2012-02-16 13:29:34 · 651 阅读 · 0 评论 -
PageRank算法 之我看
PageRank是google搜索中用于计算页面的重要程度,即PR值。下面就是其计算公式: 我们可以把这也页面的连接关系看成图的结构,页面就是图中的一个节点,边代表页面之间的链接关系,其中P(n)代表的就是第n个节点的PR值,L(n)代表n节点的所有入度节点的集合,C(m)代表m节点的出度,G代表的是所有的节点数目,a代表的是随机的跳转到任何一个页面的概率,1-a代表进...原创 2012-02-15 13:22:01 · 154 阅读 · 0 评论 -
(转载) 快速排序、希尔排序、插入排序、选择排序、归并排序、堆排序总结
一、快速排序的基本思想 设当前待排序的无序区为R[low..high],利用分治法可将快速排序的基本思想描述为:①分解: 在R[low..high]中任选一个记录作为基准(Pivot),以此基准将当前无序区划分为左、右两个较小的子区间R[low..pivotpos-1)和R[pivotpos+1..high],并使左边子区间中所有记录的关键字均小于等于基准...原创 2012-10-17 11:14:20 · 154 阅读 · 0 评论 -
编程珠玑开篇--磁盘文件排序问题
转载。。。。编程珠玑开篇--磁盘文件排序问题 输入:所输入的文件,至多包含n个正整数,每个正整数都小于n,题目中n = 10^7,如果输入时某个正整数重复出现俩次,就会产生致命的错误,这些整数,与其他任何数据都不相关.输出:以增序形式输出经过排序的整数列表约束至多只有1MB(包括程序本身)可用的主存,但是可以用的磁盘空间是充足的,运行时间至多几分钟,...原创 2012-10-16 10:07:55 · 134 阅读 · 0 评论