简单二分法查找
时间:2022-07-23
本文章向大家介绍简单二分法查找,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
C
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include "string.h"
unsigned int Search(char* list, int len, int num)
{
int min, max, mid_index;
min = 0;
max = len - 1;
mid_index = (min + max) / 2;
printf("min=%d, max=%d, mid_index=%drn",min, max, mid_index);
if (list[min] == num)
{
printf("Find: index=%d, value=%drn", min, list[min]);
return min;
}
else if (list[max] == num)
{
printf("Find: index=%d, value=%drn", max, list[max]);
return max;
}
while (true)
{
if (list[mid_index] == num)
{
printf(">> Find: index=%d, value=%drn", mid_index, list[mid_index]);
return mid_index;
}
else if (list[mid_index] > num)
{
printf(">> 大了 index=%d, value=%drn", mid_index, list[mid_index]);
min = min;
max = mid_index;
mid_index = (min + max) / 2;
}
else
{
printf(">> 小了 index=%d, value=%drn", mid_index, list[mid_index]);
min = mid_index;
max = max;
mid_index = (min + max) / 2;
}
}
}
int main()
{
char list[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int len = sizeof(list) / sizeof(char);
Search(list, len, 8);
return 0;
}
Python
def binarySearch(arr, val):
head = 0
end = len(arr)
mid = (head+end) // 2
if val > arr[end-1] or val < arr[head]:
print("No!")
return
while 1:
print(head, mid, end)
if val == arr[mid]:
print("Find!", arr[mid])
break
elif val < arr[mid]:
head = head
end = mid
mid = (head+end) // 2
elif val > arr[mid]:
head = mid
end = end
mid = (head + end) // 2
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
binarySearch(arr, 10)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP设计模式之解释器(Interpreter)模式入门与应用详解
- Laravel 实现在Blade模版中使用全局变量代替路径的例子
- PHP实现关键字搜索后描红功能示例
- 如何在CentOS中安装PHP7.4的方法步骤
- Linux安装Python3如何和系统自带的Python2并存
- Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
- PHP学习记录之常用的魔术常量详解
- laravel orm 关联条件查询代码
- PHP实现财务审核通过后返现金额到客户的功能
- Laravel框架中的路由和控制器操作实例分析
- php利用array_search与array_column实现二维数组查找
- Python实现手绘图效果实例分享
- php如何把表单内容提交到数据库
- Laravel5.5 视图 – 创建视图和数据传递示例
- 浅谈Python爬虫原理与数据抓取