有序数组二分法查找数值
2012-10-30 23:22
369 查看
#include <stdio.h> #define M 11 /** * 有序数组二分法查找数值 * low 最小值 * mid 中间值 * high 最大值 * val 输入值 * fount 判断值 1 找到 0 未找到 */ void main() { int low, mid, high, val, fount; static int arr[M] = {-12,-4,-1,0,11,22,44,67,89,90,111}; printf ("请输入一个数字:"); low = 0; high = M - 1; /* 对输入的内容合法性进行判断 */ while ( scanf("%d", &val) != 1 ) { printf("请入的是非法字符!!\n请重新输入\n"); getchar(); } while ( low <= high ) { mid = ( low + high ) / 2; if ( val == arr[mid] ) { fount = 1; break; } if ( val < arr[mid] ) { --high; } else { ++low; } } if ( fount == 1 ) { printf ("该数值存在,值%d是%d个\n", val, mid); } else { printf ("%d的值不存在\n", val); } }
修改了一下程序,加了对非法字符的检测,vc6.0 下测试通过
相关文章推荐
- 有序数组的二分法查找关键字
- php 二分法查找数组中某数值 案例分析
- 程序员面试题目总结--数组(二)【二分查找、找出给定数字出现次数、两个有序整型数组交集、找出数组中唯一的重复元素、判断数组中的数值是否连续相邻】
- 数据结构与算法--有序数组和二分法查找
- (笔记)数组 插入式排序法 有序查找二分法
- //二分法查找数组中的某个元素(二分法查找时数组元素必须是有序的)
- (二)有序数组的二分法查找
- 二分法在有序数组中进行查找
- 在一个有序数组中查找具体的某个数字——二分法——函数法
- 利用二分法查找有序数组中某一元素
- 查找一个有序数组中的一个元素——二分法
- 个人练习数据结构之--------------关于线性数据的有序数组以及之上的二分法查找、不同排序方法的学习
- 定义数组为有序数组模型,并利用二分法进行查找,删除特定值(缺点:只能删除一个值,若有相同的值,则删除第一个)
- 二分法查找有序数组中某元素个数
- 二分法查找有序数组
- 有序数组的二分法查找关键字
- 设计一个模板类Sample,用于对一个有序数组采用二分法查找元素下标
- 迭代用在有序数组二分法查找中,递归的二分法查找更简洁,但速度可能会慢一点
- 二分法查找有序数组
- 二分法实现一个整形有序数组的二分查找