二分初步学习
来源:互联网 发布:淘宝客刚建群话术 编辑:程序博客网 时间:2024/06/06 15:50
二分初步学习
二分搜索算法是运用分治策略的典型例子。
给定已经排好序的n个元素a[0:n-1],现在要在这n 个元素中查找一个特定的元素x。
首先,我们比较容易想到的是顺序搜索法,逐个地比较a[0:n-1]中的元素。但是这个方法没有充分地利用n个元素已排好序这个条件,因此在最坏的情况下,顺序搜索法需要O(n)次比较。
二分搜索算法充分利用了元素间的次序关系,采用分治策略,可以在最坏的情况下O(logn)的时间完成搜索任务。
二分搜索算法的基本思想是将n个元素分成个数大致相同的两半,取中间元素(a[(n-1)/2])与x作比较,如果x=a[(n-1)/2],则找到x算法终止;如果x<a[(n-1)/2],则只需在数组a的左半部分继续搜索x;如果x>a[(n-1)/2],则只要在数组a的右半部分继续搜索x。
二分搜索算法也可以用在方程根的近似求解上。
一般地,问题可以描述为,求解方程方程f(x)=0。那么具体采用怎样的二分策略来搜索方程的近似解呢?设定一个区间[a,b]满足f(a)*f(b)<0,对于连续函数f(x)来说,一定存在一个根x在区间[a,b]使得f(x)=0成立。不妨假设f(a)<0,f(b)>0,那么二分的思想就很明确了。同样,每次将区间分成两个大致相同的子区间[a,mid]、[mid,b](mid=(a+b)/2.0),如果f(mid)>0,则只需在左半个区间[a,mid]中进行搜索;如果f(mid)<0,相应地我们只需要在问题的右半个区间[mid,b]中进行搜索即可。
参考资料:《计算机算法设计与分析》(王晓东著)
- 二分初步学习
- 二分查找初步
- 整体二分初步
- 初步学习
- 初步学习
- 二分的初步= =
- 3 Steps(二分图初步)
- 【算法学习笔记】22.算法设计初步 二分查找 上下界判断
- 多线程学习初步
- 多线程学习初步
- 初步学习petshop
- 初步学习Swing
- struts初步学习
- 关于初步学习STRUCT
- vc学习初步
- bash初步学习笔记
- 初步学习HTML-标记
- DOM学习初步
- 积分太少怎么办
- 原创:《一个操作系统的实现》书中的一处思考:P129页,84行之:and di,0fff0h
- Android应用Icon大小在不同分辨率下定义
- ubuntu10.10环境下配置Apache+PHP+PHPmyadmin+MySQL
- 算法-排序-归并排序(MergeSort)分析
- 二分初步学习
- Ubuntu 10.04下安装Google拼音输入法
- find查找比某个文件新或旧的文件
- C语言替换特定字符
- Linux/centos减轻/防止DDoS攻击的轻量级小程序,DDoS deflate软件防火墙
- 3g手机
- 关于cin.getline()
- 【树】树算法之红黑树
- 在Struts2下使用[拦截器]配合[session监听器]实现在线会员统计与防止重复登录