C语言实现 二分查找 支持降序和升序
来源:互联网 发布:100本网络禁书在线阅读 编辑:程序博客网 时间:2024/06/05 11:43
// Test2.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#define N 5
/*
* 对降序数组进行二分查找
*/
int main(int argc, char* argv[])
{
int a[N];
int i,k;
int low=0,high=N-1,mid;
bool ret = false;
printf("请输入一组有序的数字:\n");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("输出输入的有序数字:\n");
for(i=0;i<N;i++)
printf("%5d",a[i]);
printf("\n请输入查找的数字:");
scanf("%d",&k);
if( a[low] > a[high] )//如果数组是降序的,使用下面方法
{
while(low<=high)
{
mid=(low+high)/2;
if( k > a[mid])
{
high = mid - 1;
}
else if( k < a[mid])
{
low = mid + 1;
}
else
{
printf("要查找的数字在数组的第%d位\n", mid);
ret = true;
break;
}
}// end while
}
else//如果数组是升序的,使用下面的方法
{
while(low<=high)
{
mid=(low+high)/2;
if( k < a[mid])
{
high = mid - 1;
}
else if( k > a[mid])
{
low = mid + 1;
}
else
{
printf("要查找的数字在数组的第%d位\n", mid);
ret = true;
break;
}
}// end while
}
if(ret == false){
printf("%d的值未找到\n",k);
}
return 0;
}
//
#include "stdafx.h"
#define N 5
/*
* 对降序数组进行二分查找
*/
int main(int argc, char* argv[])
{
int a[N];
int i,k;
int low=0,high=N-1,mid;
bool ret = false;
printf("请输入一组有序的数字:\n");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("输出输入的有序数字:\n");
for(i=0;i<N;i++)
printf("%5d",a[i]);
printf("\n请输入查找的数字:");
scanf("%d",&k);
if( a[low] > a[high] )//如果数组是降序的,使用下面方法
{
while(low<=high)
{
mid=(low+high)/2;
if( k > a[mid])
{
high = mid - 1;
}
else if( k < a[mid])
{
low = mid + 1;
}
else
{
printf("要查找的数字在数组的第%d位\n", mid);
ret = true;
break;
}
}// end while
}
else//如果数组是升序的,使用下面的方法
{
while(low<=high)
{
mid=(low+high)/2;
if( k < a[mid])
{
high = mid - 1;
}
else if( k > a[mid])
{
low = mid + 1;
}
else
{
printf("要查找的数字在数组的第%d位\n", mid);
ret = true;
break;
}
}// end while
}
if(ret == false){
printf("%d的值未找到\n",k);
}
return 0;
}
- C语言实现 二分查找 支持降序和升序
- 二分法查找升序和降序集合
- 冒泡排序实现升序和降序排列
- C语言实现的线性查找和二分查找
- C语言链表中数组实现数据选择排序,升序、降序功能主要难点
- C语言实现二分查找
- 二分查找 c语言实现
- 二分查找C语言实现
- C语言实现二分查找
- c语言 实现二分查找
- c语言实现二分查找
- javascript 升序和降序
- 降序和升序
- 升序和降序操作
- 升序和降序操作
- 升序降序数组查找最大值
- C语言在数组中插入一个数,升序降序
- 快速排序和二分查找算法的实现C语言
- android 人脸识别
- 客户端 用不用 bind 的区别
- socket (hello world)
- 黑马程序员---Hibernate和Ibatis区别
- Python源码学习 番外-为方便调试和查看变量而自己写的autoexp.dat
- C语言实现 二分查找 支持降序和升序
- POJ 2528
- JavaScript -- 节点操作, 事件触发, 表单伸缩
- bash shell变量替换
- 反射
- git进行权限控制
- 《HTTP权威指南》 读一
- 获取arcgis克里格插值后的每个点的插值结果
- UVa 10721 Bar Codes (DP)