折半查找法
来源:互联网 发布:js中startwith 编辑:程序博客网 时间:2024/06/07 14:53
1. 问题:假设现在有一个有序的数组array(已按升序排列好的),又有一个数num,现在查找这个数num是否在数组array中。
问题分析:假设num在数组array中,那么怎么进行折半查找呢?
1)先将num和数组中间的那个数比较
2)如果num小于中间的那个数,那就继续在前一半进行查找
3)如果num大于中间的那个数,就继续在后一半进行查找。
4)如果查找到就返回num所在array的下标。
#include <stdio.h>#include <iostream>using namespace std;/* *参数说明:int a[]表示要查找的有序数组int n 表示数组a的长度int num 表示要查找的那个数返回值:int类型如果找到num,返回它所在的下标如果没找到,返回-1* */int midsearch(int a[],int n,int num){int low,high,mid;low = 0;high = n-1;while(low <= high){mid = (low + high)/2;if(num > a[mid]){low = mid + 1;}else if(num < a[mid]){high = mid -1;}else return mid;}return -1;//没有找到}int main(void){int arr[10] = {13,22,41,56,58,59,64,65,70,86};int num = 64;int index = midsearch(arr,10,num);printf("%d在数组arr中的下标是%d.\n",num,index);system("pause");return 0;}
输出结果:
0 0
- 折半查找法(递归)
- 折半查找法
- 汇编折半查找法
- 折半查找法
- 折半查找法
- 折半法查找
- 折半查找法
- 折半查找法
- 折半查找法C++
- 折半查找法
- JAVA折半查找法
- 折半查找法
- NSArray 折半查找法
- 折半查找法
- 折半查找法
- 折半查找法
- 折半查找法
- 算法:折半查找法
- JAVA利用HttpClient进行POST请求(HTTPS)
- 大型分布式网站架构技术总结
- iOS 探讨之 WWDCRA 无效 or "此证书的签发者无效"
- 通过jdbc连接MySQL数据库
- Android——数据存储(Login)
- 折半查找法
- Mac 常见的命令行interface
- JavaScript简介
- wfs方式获取最短路径
- 归并排序算法 iOS
- 已知后序中序求先序(二叉树)
- Http协议详解
- 《Java 2 实用教程》读书笔记(三)
- java位运算及其四则表示