折半查找
来源:互联网 发布:linux进入用户命令 编辑:程序博客网 时间:2024/06/08 07:19
折半查找时一种效率很高的查找方法,当没必要使用for循环每一个遍历的时候,折半查找就是一个很好的选择
#include<stdio.h>
int binary_search(int arr[], int key, int left, int right){
int mid = 0;
while(left<=right)
{
mid = left-(left-right)/2;
if(arr[mid]>key)
{
right = mid-1;
}
else if(arr[mid]<key)
{
left = mid+1;
}
else
{
return mid;
}
}
if(left>right)
{
return -1;
}
}
int main()
{
int arr[] = {1,2,3,4,5,6,7,8,9,10};
int key = 6;
int ret = binary_search(arr, key, 4, 8); //后面的4和8是规定了查找的左右界限,利于查找
if(ret != -1)
{
printf("找到了\n");
}
else
{
printf("没找到\n");
}
getchar();
return 0;
}
当然了如果想要输出下标,只要加入适当程序段就能实现,具体改动可以自己往里面添加。
1 0
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 2016 Bluebridge cut_stamps
- 第二章 数据模型
- jvm_outofmemory_JavaVMStackOOM
- 一种适合懒人的JSON解析方法
- Android 沉浸式状态栏的实现方法、状态栏透明
- 折半查找
- jvm_outofmemory_JavaVMStackSOF
- python正则表达式
- 关于IAR报 more than one storage class may not be specified 错误的问题
- Codeforces Round #406 (Div. 2) E. Till I Collapse
- OSG入门_场景图形与OpenSceneGraph概述02
- golang实现简易TCP服务以及TCP和UDP协议对比
- Hydra 实验学习笔记
- hibernate的核心接口