c语言:编写折半查找函数
2016-05-29 13:38
656 查看
编写折半查找函数
程序:
#include <stdio.h>
int binsearch(int x, int arr[], int len)//binsearch 折半,对分
{
int left = 0;
int right = len - 1;
while (left <= right)
{
int mid = left + (right - left) / 2;
if (arr[mid] < x)
{
left = mid + 1;
}
else if (arr[mid] == x)
{
return mid;
}
else
{
right = mid - 1;
}
return -1;
}
}
int main()
{
int arr[] = { 1, 21, 33, 46, 5, 62, 70, 81, 99, 10 };
int num = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
printf("请输入一个数:");
scanf("%d", &num);
int ret = binsearch(num, arr, sz);
if (ret == -1)
{
printf("not exist\n");
}
else
{
printf("数的位置:%d\n", ret + 1);
}
return 0;
}
结果一:
请输入一个数:81
数的位置:8
请按任意键继续. . .
结果二:
请输入一个数:83
not exist
请按任意键继续. . .
本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1725712
程序:
#include <stdio.h>
int binsearch(int x, int arr[], int len)//binsearch 折半,对分
{
int left = 0;
int right = len - 1;
while (left <= right)
{
int mid = left + (right - left) / 2;
if (arr[mid] < x)
{
left = mid + 1;
}
else if (arr[mid] == x)
{
return mid;
}
else
{
right = mid - 1;
}
return -1;
}
}
int main()
{
int arr[] = { 1, 21, 33, 46, 5, 62, 70, 81, 99, 10 };
int num = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
printf("请输入一个数:");
scanf("%d", &num);
int ret = binsearch(num, arr, sz);
if (ret == -1)
{
printf("not exist\n");
}
else
{
printf("数的位置:%d\n", ret + 1);
}
return 0;
}
结果一:
请输入一个数:81
数的位置:8
请按任意键继续. . .
结果二:
请输入一个数:83
not exist
请按任意键继续. . .
本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1725712
相关文章推荐
- c语言:创建一个数组,分别实现函数初始化数组、 清空数组、数组元素的逆置
- C语言:VS环境下的程序调试快捷键
- c语言:输出一个数组,判断是否存在问题,若有,请找出问题并改正
- c语言:宏的使用举例
- c语言:宏里面参数不加括号容易出错,在使用时尽量加括号及举例
- c语言:printf可以自动把两个字符串合并成一个字符串,并且可以合并多个
- c语言:#和##的区别及作用
- c语言:两种方法实现字符串拷贝strcpy
- C语言:VS环境下的程序快捷键大全以及Windows快捷键命令
- c语言:全局变量和局部变量的区别:通过调用函数举例
- c语言:字符串匹配的KMP算法
- c语言:模拟实现strstr库函数
- c语言:浪漫的putchar(),用数字向女朋友表白吧(ps:单身汪勿入)
- c语言:我国国民生产总值的年增长率为10%,10年后国民生产总值与现在相比增长多少
- c语言:存款利息计算,1000元,存5年,求五种方案存款五年后的本息和
- c语言:购房从银行贷了一笔款d,准备每月还款额为p,月利率为r,计算多少月能还清。
- c语言:整型和字符型的范围易错及分析
- c语言:实现对于给定的正整数N,依次打印出小于等于N的所有素数。两种方法及其优化
- c语言:编写猜数字小游戏。
- c语言:C语言清空输入缓冲区在标准输入(stdin)情况下的使用