一. 什么是二分查找
二分查找又称为折半查找,该算法的思想是将数列按序排列,采用跳跃式方法进行查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。以此类推不断缩小搜索范围。
二. 二分查找的条件
二分查找的先决条件是查找的数列必须是有序的。
三. 二分查找的优缺点
优点:比较次数少,查找速度快,平均性能好;...
分类:
编程语言 时间:
2014-07-22 23:00:14
阅读次数:
512
本文出自:http://blog.csdn.net/svitter
题意:汉诺塔,多了一根柱子,问你寻找最快的移动次数。
dp [ n ] = dp [ n - j ] * 2 + pow( 2, j ) - 1;
就是把j个汉诺塔移到一根上,然后就是普通的汉诺塔问题,即2^n - 1次移动。
注意pow(2, j )可能超出long long int范围。写二的次方的时候也可用移...
分类:
其他好文 时间:
2014-05-03 00:14:10
阅读次数:
342
29:数组中出现次数超过一半的数字 方法a. 排序取中 O(nlogn) 方法b.
partition 函数分割找中位数 >=O(n) 方法 c. 设计数变量,扫描一遍。 O(n)#include int findNumber(int
data[], unsigned length){/* if(c...
分类:
其他好文 时间:
2014-05-02 19:47:41
阅读次数:
535
最近看雅虎黄金34条,学习下优化网站性能的方法。其中有一条:“为文件头指定Expires或Cache-Control”,具体来说指对于静态内容:设置文件头过期时间Expires的值为“Never
expire”永不过期;而对于动态内容:使用恰当的Cache-Control文件头来帮助浏览器进行有条件的请求。
这一条可以和雅虎34条的第一条联系起来,那就是尽量减少http的请求次数(雅虎34条...
分类:
其他好文 时间:
2014-05-01 22:04:55
阅读次数:
346
无捕获分组当你要将一部分规则作为一个整体对它进行某些操作,比如指定其重复次数时,你需要将这部分规则用(?:)把它包围起来。分支条件在正则表达式中,分支条件是一个很常用的条件。满足条件A
或者 满足条件B ,这个时候我们就可以使用分支条件了。分支条件使用的符号为 |代码示例:我们突然发现,...
分类:
编程语言 时间:
2014-05-01 10:05:33
阅读次数:
435
此类题目有一个明显的特点,是n个点或者n*n的矩阵,否则无法做矩阵运算
点数不能太大,因为矩阵操作的复杂度是O(N^3)的,所以大概最多只能有100个点
结果和移动次数有关,且一次只能移动一个点...
分类:
其他好文 时间:
2014-04-30 22:31:40
阅读次数:
262
最短路问题是图论中最基础的问题,在面试题中出现的次数也很多,很多类似最少步数等问题都能转化到最短路问题,这篇文章介绍单源最短路问题的两种算法。单源最短路问题是固定一个起点,求它到其他所有点的最短路问题,如果只求两个固定点之间的最短路,看起来要简单很多,但其实复杂度是一样的,所以我们广泛的讨论单源最短路问题。...
分类:
其他好文 时间:
2014-04-29 13:46:22
阅读次数:
281
首先给出联通块的定义:对于相邻(上下和左右)的相同的数字视为一个联通块
现给一个n*m的只有0和1的矩形和数字k,求出最小反转个数使得整体包括若干个矩形联通块(即每个联通块均是矩形)(1?≤?n,?m?≤?100; 1?≤?k?≤?10)
如果最小次数比k大,输出-1...
分类:
其他好文 时间:
2014-04-29 13:38:20
阅读次数:
261
又是一个新的算法,原来可以这样查找的。
我的一句话理解的思想:
计算可以抵消的数量,那么如果一个数出现的次数超过半那么最终这个数肯定不会被抵消完。
这个思想叫 Moore’s Voting Algorithm
有了这个思想武器之后,程序就可以写的很简单,可以很清楚看到怎么实现的,
参考资料可以看:...
分类:
其他好文 时间:
2014-04-29 13:22:22
阅读次数:
260