二分排序
/* 二分查找
* 算法思想:1、将数组排序(从小到大);2、每次跟中间的数mid比较,如果相等可以直接返回,
* 如果比mid大则继续查找大的一边,否则继续查找小的一边。
输入:排序好的数组 - sSource[],数组大小 - array_size,查找的值 - key
返回:找到返回相应的位置,否则返回-1
*/
int BinSearch(int sSource[], int array_size, int key)
{
int low = 0, high = array_size - 1, mid;
while (low <= high)
{
mid = (low + high) / 2; //获取中间的位置
if (sSource[mid] == key)
return mid;
if (sSource[mid] > key)
high = mid - 1; //如果比key大,则往低的位置查找
else
low = mid + 1; //如果比key小,则往高的位置查找
}
return -1;
}
二分查找算法(递归实现):
/*在下届为low,上界为high的数组a中折半查找数据元素x*/
int BSearch(elemtype a[],elemtype x,int low,int high)
{
int mid;
if(low>high) return -1;
mid=(low+high)/2;
if(x==a[mid]) return mid;
if(x <a[mid]) return(BSearch(a,x,low,mid-1));
else return(BSearch(a,x,mid+1,high));
}
分享到:
相关推荐
学数据结构愁眉苦脸者,这里有数据结构中常用的经典算法。。快来看啦
五大经典算法总结,算法数据结构 五大常用算法
常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结
机器学习十大经典算法优缺点总结提炼,包括C4.5,K-means,SVM,k近邻,以及pageRank,决策树等算法原理
经典算法是计算机专业核心课程之一.计算机算法的优劣,对于计算机硬件的利用和系统的性能具有重要的影响.算法也是计算机科学中重要的理论之一.本文对递归算法、分治算法、动态规划算法、贪心算法等经典的算法进行研究...
本人的原创作品,经典算法研究系列,自从去年十二月末至今,已写了近四个月,而本人开博还不到半年。可以这么说,开博头俩个月一直在整理微软等公司的面试题,而后的四个月至今,则断断续续,在写此经典算法研究系列...
2016年新总结的ACM常用算法总结,搜集整理自网络.pdf
常见的排序算法进行整理,包括:插入排序、选择排序、冒泡排序、快速排序、堆排序、归并排序、希尔排序、二叉树排序、计数 排序、桶排序、基数排序。
算法各种算法总结.doc
排序算法总结和比较 介绍各种排序算法的特点及原理,大致总结了我们常见的所有的排序算法的特点
acm递归算法总结acm递归算法总结!!!!!!!!!!!!!!!!!!!!!!!
深度学习推荐系统经典算法总结,包含了传统机器学习领域和深度学习领域的经典推荐算法
考研数据结构经典算法总结,很全的,很强大。
包含了各种经典的数据结构和算法的总结(描述 + C++代码),例如:链表,字符串,二叉树,哈夫曼树,图,查找,排序等。
排序算法总结.doc 排序算法总结.doc 排序算法总结.doc
常用排序算法总结,包括插入排序(InsertionSort),冒泡排序(BubbleSort),选择排序(SelectionSort),快速排序(QuickSort), * 二路归并排序(MergeSort),堆排序(HeapSort)。有每一种排序算法的复杂度分析以及实现...
十五个经典算法研究与总结、目录+索引 非常详细
三年算法总结,总结三年算法
数学建模算法总结