C语言二分查找
2018-12-04 07:13:14来源:博客园 阅读 ()
#include <stdio.h> /* 二分查找条件: 1、有序序列 2、数据在数组中 */ int baseBinarySearch(int a[],int h,int k) { int low=0; int high=h; int mid =0; int NoFound = -1; while (low <= high) { mid = low + (high-low) /2 ; if ( k < a[mid] ) { high = mid - 1; } else if ( k > a[mid] ) { low = mid + 1; } else { return mid; } } return NoFound; } //查找第一个相等的元素 int FirstElementBinSearch(int a[],int h,int k) { int low=0; int high=h; int mid =0; int NoFound = -1; while (low <= high) { mid = low + (high-low) /2 ; if ( k <= a[mid] ) { high = mid - 1; } else { low = mid + 1; } } return low <= h ? low : NoFound; } //查找最后一个相等的元素low int LastElementBinSearch(int a[],int h,int k) { int low=0; int high=h; int mid =0; int NoFound = -1; while (low <= high) { mid = low + (high-low) /2 ; if ( k >= a[mid] ) { low = mid + 1 ; } else { high = mid -1 ; } } printf("%d %d %d\n",low,high,a[low-1]); if (low - 1 >= 0 && a[low - 1] ==k) { return low-1; } return NoFound; }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 关于各种不同开发语言之间数据加密方法(DES,RSA等)的互通的 2020-06-07
- C语言程序结构 2020-05-31
- 每日干货丨C++语言主流开发工具推荐! 2020-04-28
- C语言实现经典游戏——扫雷! 2020-04-17
- C语言中的宏定义 2020-04-04
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash