一、递归 简单来说,递归的思想就是:把问题分解为规模更小的、具有与原问题有着相同解法的问题。比如二分查找算法,就是不断地把问题的规模变小(变成原问题的一半),而新问题与原问题有着相同的解法。 一般来讲,能用递归来解决的问题必须满足两个条件: 可以通过递归调用来缩小问题规模,且新问题与原问题有着相同的...
分类:
其他好文 时间:
2015-05-02 18:06:27
阅读次数:
116
Title:Implementint sqrt(int x).Compute and return the square root ofx.思路:这个平方根肯定是在【1,x】之间,所以在这个区间使用二分查找。需要注意的是,代码中一直使用mid ,x/mid来比较,因为如果使用mid的平法,即使lon...
分类:
其他好文 时间:
2015-05-01 10:33:48
阅读次数:
127
STL中的二分查找——lower_bound 、upper_bound 、binary_search 二分查找很简单,原理就不说了。STL中关于二分查找的函数有三个lower_bound 、upper_bound 、binary_search 。这三个函数都运用于有序区间(当然这也是运用二分查找的前...
分类:
其他好文 时间:
2015-04-28 15:34:17
阅读次数:
222
在数据结构那一块,搜索有顺序查找/二分查找/hash查找,而排序有冒泡排序/选择排序/插入排序/归并排序/快速排序。如果遇到数据量和数组排列方式不同,基于时间复杂度的考虑,可能需要用到混合算法。如果用C语言自己写,是一个很头疼且门槛很高的过程,python却用很简单的方式,让这类算法人人可用。 .....
分类:
编程语言 时间:
2015-04-28 13:56:03
阅读次数:
215
学习内容:循环结构(while语句,do....while语句,for语句);break和continue语句;函数(函数的定义,应用,特性重载); 数组(一维数组,二维数组);(十进制通过函数封装转二、八、十六进制;选择排序,冒泡排序;以及二分查找)一、循环结构1,while语句格式: ...
分类:
编程语言 时间:
2015-04-28 11:05:37
阅读次数:
156
二分查找,应用的场景是在一个排序的序列中,查找指定的数的位置。复杂度为O(logn).常用的包括递归的方法,如下:def binarySearch(data, x, start, end): if start>end: return -1 mid = start + (end-start)/2 #....
分类:
其他好文 时间:
2015-04-27 21:25:51
阅读次数:
84
这几天一直再看,觉得看懂了一些,先记下来。动态规划动态规划是运筹学的一个方向,就是把多级最优化问题分解成一系列的单阶问题。在不断增加的过程中,不断的计算当前问题的最优解。一般分为如下四个部分:
线性动规:拦截导弹,合唱队形,挖地雷,建学校,剑客决斗等;
区域动规:石子合并, 加分二叉树,统计单词个数,炮兵布阵等;
树形动规:贪吃的九头龙,二分查找树,聚会的欢乐,数字三角形等;
背包问题:01背包问题...
分类:
编程语言 时间:
2015-04-27 02:07:23
阅读次数:
427
基于数组二分查找算法的实现
二分查找 查找 算法 赵振江
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的...
分类:
编程语言 时间:
2015-04-26 10:58:49
阅读次数:
163
Description有个脑筋急转弯是这样的:有距离很近的一高一低两座桥,两次洪水之后高桥被淹了两次,低桥却只被淹了一次,为什么?答案是:因为低桥太低了,第一次洪水退去之后水位依然在低桥之上,所以不算“淹了两次”。举例说明:假定高桥和低桥的高度分别是5和2,初始水位为1第一次洪水:水位提高到6(两个...
分类:
编程语言 时间:
2015-04-26 08:05:49
阅读次数:
199
1.二分查找 1 public class BubbleSort { 2 public static int binarySerach(int[] a,int value){ 3 int low=0; 4 int high=a.length-1; 5 ...
分类:
其他好文 时间:
2015-04-24 00:48:26
阅读次数:
310