折半查找要求顺序表中的元素必须是排好序的,即数组中的元素是由小到大排好序的 思想: 1.以数组的边界确定low和high的值,low就是最低的0,high就是最高的n-1(n是元素的个数),这里的low和high都是指向数组的下标(物理序号) 2.用low和high确定mid即所有元素的中间值,mid也是数组的下标,mid = (low+high)/2 3.如果mid下标的值等于关键字key那么就返回mid+1(逻辑序号) 4.如果关键字key大于mid下标的值,那么 low = mid+1 (要在mid的右侧找) 5.如果关键字key小于mid下标的值,那么 high = mid-1(要在mid的左侧找) 6.重新计算mid的值,进行二分查找,循环下去,如果找到放回mid+1,否则返回0
普通c语言代码:
#include
int search(int array[], int n, int key) {
int low = 0,high = n-1,mid;
while(low
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?