二分法练习题目
来源:互联网 发布:知乎live可以重复听吗 编辑:程序博客网 时间:2024/05/29 03:17
二分查找法
1. 二分查找的数组是有序的
2. 二分查找能够有效的减少有序数组的查询次数
3. 题目
利用二分查找法,查找某个数,如果存在则输出这个数,如果不存在,输出比它大的最小的数,输出比它小的最大的数,如果该数不在这个数组的范围内,就会报错
#include<stdio.h>#include<stdlib.h>void init(int array[],int num);int binaryFind(int array[],int num,int findNum);//06void main(){int ret = 1;int a[10] ={0};init(a,sizeof(a)/sizeof(*a));int findNum = 0;printf("输入你想要查找的数:");scanf("%d",&findNum); ret = binaryFind(a,sizeof(a)/sizeof(*a),findNum);if (ret == -1){printf(" error: %d can't find the number %d",ret,findNum);}else{printf("the label is %d",ret+1);}system("pause");}//数组输入和排序void init(int array[],int num){ int temp = 0; //数组的录入 for (int i = 0;i< num;i++) { printf("请输入%d个数",i+1); scanf("%d",&array[i]); } //冒泡排序 for(int i = 0;i< num;i++) { for(int j = 0;j<num-i-1;j++) { if(array[j]>array[j+1]) { temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } }}//二分查找int binaryFind(int array[],int num,int findNum){int ret = -2;if (array == NULL){return ret = -1;}//二分查找主要算法int begin = 0;int end = num -1;int nowLable = 0;if (findNum < array[0] || findNum > array[num -1]){return ret = -1;}while(begin <= end){nowLable = (begin + end)/2;if (array[nowLable]== findNum){return nowLable;}if (array[nowLable]>findNum){end = nowLable - 1;}else{ begin = nowLable + 1;}}if (array[nowLable] > findNum){printf("the biger number is %d\n",array[nowLable]);printf("the lower number is %d\n",array[nowLable -1]);}else{printf("the biger number is %d\n",array[nowLable+1]);printf("the lower number is %d\n",array[nowLable]);}return ret;}
0 0
- 二分法练习题目
- 第三周练习题目—二分法 影子的最大长度
- 第三周练习题目——二分法1 水的高度
- 二分法经典题目
- 【算法练习】二分法查询
- HNUST专题练习:二分法
- (数组练习)二分法查找
- 排序算法练习-二分法
- 一个二分法的面试题目
- 二分法的题目1 排队
- 题目练习
- 题目练习
- 折半查找(二分法 练习)
- Java编程题目-6:二分法搜索
- 基本功练习_2_27_之二分法查找
- Java数据库练习题目
- 课堂练习题目答案
- C++简单练习题目
- Objective-C Runtime 运行时之一:类与对象
- Windows 8.1及Windows8 JDK环境变量配置
- android listview滑动出现arrayIndexOutOfBoundException
- 浅谈医学大数据(上)
- 界面上始终有一个浮动的小图标“C",请问如何去掉?
- 二分法练习题目
- 白帽子
- MySQL5.6如何查找my.ini文件和创建的数据库文件夹
- StringTokenizer类的使用
- How Rendering Work (in WebKit and Blink)
- 浅谈医学大数据(中)
- 源自老毕Java基础教程--装饰设计模式
- 静态库
- 基于WAMP安装pear