二分(折半)查找算法实现
来源:互联网 发布:中国生物医学数据库 编辑:程序博客网 时间:2024/04/29 20:25
不多说了,见代码:
// BinaryFindNumINArray.cpp : 定义控制台应用程序的入口点。/*@mishidemudong@2015-7-5-17:02*///#include "stdafx.h"#include<iostream>using namespace std;bool Find=false;int BinaryFind(int *a,int length, int target){if (a == NULL || length < 0)return -1;int low = 0, high = length - 1;int mid = 0;while (low <= high){if (a[mid] == target){Find = true;return mid;break;}mid = (low + high) / 2;if (a[mid] < target)low = mid;elsehigh = mid;}}
//递归版本
<pre name="code" class="cpp">int BinerarySearch(int a[], int low, int high, int key){int mid = 0;if (low > high)return -1;else{mid = (low + high) / 2;if (a[mid] == key)return mid;if (key > a[mid] )return BinerarySearch(a, mid + 1, high, key);elsereturn BinerarySearch(a, low, mid - 1, key);}}
int _tmain(int argc, _TCHAR* argv[]){int a[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 19, 30, 58 };int length = sizeof(a)/sizeof(int);int location = 0;int x = 0;for (int i = 0; i < length; ++i)cout << a[i]<< " ";cout << endl;cout << "whitch number do you want to seach?";scanf_s("%d", &x);location = BinaryFind(a, length,x);switch (Find){case true:printf("Yes,The number you input is founded!And it is %dth number in the array.", location + 1); break;case false:printf("Sorry,The number you input is not in this Array.");}return 0;}
0 0
- 实现折半查找算法(二分查找)
- PHP实现折半(二分)查找算法
- PHP实现折半(二分)查找算法
- 二分(折半)查找算法实现
- 算法--二分查找(折半查找)-Java实现
- C语言实现折半查找(二分查找)的算法
- 二分(折半)查找算法
- 二分(折半)查找算法
- 二分查找(折半算法)
- 二分查找算法(折半查找算法)
- 二分查找算法(折半查找算法)
- 折半查找算法(二分查找算法)
- 搜索算法----二分查找(折半查找)
- 算法:二分查找(折半查找)
- 折半查找(二分查找)Java实现
- 二分查找(折半查找),Java实现
- 折半查找(二分查找)实现
- JavaScript实现折半查找(二分查找)
- JAVA CAS原理深度分析
- nsq源码导读(序)
- xml编程
- 在 VC 中,让调试器带上符号调试
- Android中的Data Binding初探 (一)
- 二分(折半)查找算法实现
- 最正确的学习方法,程序员如何学习一项你之前完全不了解的新技术?
- VC6里的_WIN32_WINNT宏
- Ubuntu 下 触摸板不能使用 解决方法
- android学习笔记(九)——动画效果的实现逐帧动画
- 'HCRYPTHASH' : undeclared identifier 类似错误的解决办法
- 百度云消息推送机制简介及开发前的集成,入门篇
- 数组中两两相加等于20的组合种数
- bzoj2989&4170: 数列