-
二分查找实现
- #include <iostream>
-
- using namespace std;
-
- int BinarySearch(int *array, int aSize, int key)
- {
- if ( array == NULL || aSize == 0 )
- return -1;
- int low = 0;
- int high = aSize - 1;
- int mid = 0;
-
- while ( low <= high )
- {
- mid = (low + high )/2;
-
- if ( array[mid] < key)
- low = mid + 1;
- else if ( array[mid] > key )
- high = mid - 1;
- else
- return mid;
- }
- return -1;
- }
- int BinarySearchRecursive(int *array, int low, int high, int key)
- {
- if ( low > high )
- return -1;
- int mid = ( low + high )/2;
-
- if ( array[mid] == key )
- return mid;
- else if ( array[mid] < key )
- return BinarySearchRecursive(array, mid+1, high, key);
- else
- return BinarySearchRecursive(array, low, mid-1, key);
- }
-
- int main()
- {
- int array[10];
- for (int i=0; i<10; i++)
- array[i] = i;
-
- cout<<"No recursive:"<<endl;
- cout<<"position:"<<BinarySearch(array, 10, 6)<<endl;
- cout<<"recursive:"<<endl;
- cout<<"position:"<<BinarySearchRecursive(array, 0, 9, 6)<<endl;
-
- return 0;
-
相关阅读:
需要登陆网站后才能获取数据的页面爬取
PTA中提交Python3程序的一些套路
PAT 甲级 1014 Waiting in Line (30 分)(queue的使用,模拟题,有个大坑)
PAT 甲级 1013 Battle Over Cities (25 分)(图的遍历,统计强连通分量个数,bfs,一遍就ac啦)
PAT 甲级 1012 The Best Rank (25 分)(结构体排序)
anconda + python 3.6安装(以前的anconda,anaconda和python版本对应关系)
数学建模python matlab 编程(喷泉模拟)
数学建模python matlab 编程(疾病传播模型)
scikit-learn机器学习(四)使用决策树做分类,并画出决策树,随机森林对比
scikit-learn机器学习(四)使用决策树做分类
-
原文地址:https://www.cnblogs.com/xiaoxiong0222/p/4491527.html
Copyright © 2020-2023
润新知