二分法排序算法
来源:互联网 发布:中易智联软件多少钱 编辑:程序博客网 时间:2024/05/17 23:48
当数据量很大适宜采用该方法。采用二分法查找时,数据需是排好序的。 基本思想:假设数据是按升序排序的,对于给定值x,从序列的中间位置开始比较,如果当前位置值等于x,则查找成功;若x小于当前位置值,则在数列的前半段中查找;若x大于当前位置值则在数列的后半段中继续查找,直到找到为止。
C代码
#include <stdio.h>
//递归算法
int recurbinary(int *a,int key,int low,int high)
{
int mid;
if(low > high)
return -1;
mid = (low + high)/2;
if(a[mid] == key) return mid;
else if(a[mid] > key)
return recurbinary(a,key,low,mid -1);
else
return recurbinary(a,key,mid + 1,high);
}
//非递归算法[1]
int binary( int *a, int key, int n )
{
int left = 0, right = n, mid;
mid = ( left + right ) / 2;
while( left <= right && a[mid] != key )
{
if( a[mid] < key )
left = mid + 1;
else if( a[mid] > key )
right = mid - 1;
mid = ( left + right ) / 2;
}
if( a[mid] == key )
return mid;
return -1;
}
- 二分法排序算法
- 《算法导论》二分法排序
- 算法学习-二分法排序
- 排序算法练习-二分法
- 排序算法 -- 二分法插入排序
- 排序算法:二分法插入排序
- 排序算法之 二分法查找
- 快速排序,二分法排序,插入排序算法
- 排序算法——二分法插入排序
- Java排序算法之二分法插入排序
- 排序算法二:二分法插入排序
- Java算法之二分法和排序算法
- java排序算法二分法 希尔排序 快速排序 归并排序
- 常用算法(冒泡排序、二分法查找)
- 常用算法(冒泡排序、二分法查找)
- 数据结构与算法之二分法插入排序
- 冒泡,二分法插入,快速排序算法
- iOS 排序算法总结、二分法查找
- HMM学习1之介绍(转)
- 约数的个数(数论中的计数问题) By ACReaper
- Mybatis上路_03-简单关联数据查询
- 关于计算机工作方向的几点想法
- 小于n且与n互素的个数(数论中的计数问题) By ACReaper
- 二分法排序算法
- linux 配置网络/sbin/ifup: configuration for eth0 not found
- 编码与解码(数论中的计数问题) By ACReaper
- 离散概率初步 By ACReaper
- tomcat配置双向认证,客户端证书pkcs12格式,方便导入浏览器
- POJ_2253(最短路问题变形)
- 使用Lua CJSON库进行encode与decode操作完成对Json数据转化
- HMM学习2之前向算法(转)
- poj 1144