问题
二分查找
list.index()无法应对大规模数据的查询,需要用其它方法解决,这里谈的就是二分查找
思路说明
在查找方面,python中有list.index()的方法。例如:
>>> a=[2,4,1,9,3] #list可以是无序,也可以是有序
>>> a.index(4) #找到后返回该值在list中的位置
1
>>...
分类:
编程语言 时间:
2014-06-26 13:17:57
阅读次数:
223
//*************************************
// 函数名称:FineTab 二分查找算法 ->查温度表
// 函数功能:查找数据在表中对应的位置 表中数据从大到小
// 入口参数:表地址、表长度、要查找的数据
// 出口参数:无
// 返 回 值:数据在表中的位置
//***************************************/
int...
分类:
其他好文 时间:
2014-06-25 10:24:52
阅读次数:
115
二分插入排序 也称折半插入排序,
1、基本思想:设数列[0....n]分为两部分一部分是[0...i]为有序序列,另一部分是[i+1.....n]为无序序列,从无序序列中取一个数
x ,利用二分查找算法找到 x 在有序序列中的插入位置并插入,有序序列还是有序的,接下来重复上述步骤,直到无序序列全部插入有序序列 ,这是整个序列只剩下有序序列即有序了。
2、代码:
{...
分类:
其他好文 时间:
2014-06-22 22:33:03
阅读次数:
187
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以...
分类:
其他好文 时间:
2014-06-08 18:07:41
阅读次数:
187
//*************************************
// 函数名称:FineTab 二分查找算法 ->查温度表
// 函数功能:查找数据在表中对应的位置 表中数据从大到小
// 入口参数:表地址、表长度、要查找的数据
// 出口参数:无
// 返 回 值:数据在表中的位置
//***************************************/
int ...
分类:
其他好文 时间:
2014-06-05 03:00:34
阅读次数:
246
二分查找又称折半查找,它是一种效率较高的查找方法。折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将查找区间缩小一半。
折半查找是一种高效...
分类:
编程语言 时间:
2014-05-16 07:10:02
阅读次数:
329
适配器模式
现有一个接口DataOperation定义了排序方法sort(int[]) 和查找方法search(int[], int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法,类BinarySearch 的binarySearch(int[], int)方法实现了二分查找算法。现使用适配器模式设计一个系统,在不修改源代码的情况下将类QuickSort和类BinarySearch的方法适配到DataOperation接口中。绘制类图并编程实现。 (要求实现快速排序和...
分类:
编程语言 时间:
2014-05-15 23:07:47
阅读次数:
423
二分查找的一点思考二分查找算法实现#define
LOCAL#include#include#includeint const MAX_N=21) { int mid=(ub+lb)/2;
if(a[mid]>=k) { ub=m...
分类:
其他好文 时间:
2014-05-13 21:53:37
阅读次数:
328
一、前言二分查找本身是个简单的算法,但是正是因为其简单,更容易写错。甚至于在二分查找算法刚出现的时候,也是存在bug的(溢出的bug),这个bug直到几十年后才修复(见《编程珠玑》)。本文打算对二分查找算法进行总结,并对由二分查找引申出来的问题进行分析和汇总。若有错误,请不吝赐教。二、二分查找是这样...
分类:
其他好文 时间:
2014-05-07 01:09:33
阅读次数:
442