折半查找(非递归与递归实现)
折半查找非递归与递归实现:
#include<stdio.h>
int linner(int a[],int n,int value);
int halfSearch(int a[],int n,int value);
int halfSearch2(int a[],int n,int value,int left,int right);
void main()
{int a[8]= {12,34,50,53,123,135,167,189};// int num=linner(a,8,53);//线性查找// int num=halfSearch(a,8,167); //非递归int num=halfSearch2(a,8,167,0,7);//递归if(num==-1)printf("没有找到这个数");elseprintf("位置在第:%d",num);
}
int linner(int a[],int n,int value) //线性查找
{for(int i=0; i<n; i++)if(a[i]==value)return i+1;return -1;
}
int halfSearch(int a[],int n,int value)//非递归折半查找
{int left=0,right=n-1,mid;while(left<=right){mid=(left+right)/2;if(value>a[mid])left=mid+1;else if(value<a[mid])right=mid-1;elsereturn mid+1;}return -1;
}
int halfSearch2(int a[],int n,int value,int left,int right) //递归折半查找
{if(left>right)return -1;int mid=(left+right)/2;if(a[mid]==value)return mid+1;else if(value>a[mid])return halfSearch2(a,n,value,mid+1,right);elsereturn halfSearch2(a,n,value,left,mid-1);
}
折半查找(非递归与递归实现)相关推荐
- 折半查找(二分查找)的理解
目录 折半查找的算法思想 查找过程演示 折半查找的判定树 代码实现 折半查找的算法思想 折半查找又称二分查找,仅适用于有序的顺序表 首先将给定值key与表中中间位置元素的关键字比较, 若相等,则返回该 ...
- 查找:线性表的C语言代码实现(顺序查找、折半查找)
目录 一.线性表结构 两个类的定义 二.线性表的初始化以及根据输入的元素建立线性表 1.线性表的初始化,初始化一个空的线性表 2.根据用户需求,向线性表中添加元素 三.顺序查找 Search1函数( ...
- 【查找算法】折半查找法
本篇文章将介绍折半查找算法. 文章目录 何为折半查找? 算法实现 递归实现 效率分析 何为折半查找? 上一篇文章介绍了顺序查找算法,我们知道,虽然顺序查找算法适用性高,但效率太低,那么能不能在此基础上 ...
- Java实现折半查找(二分查找)的递归和非递归算法
Java二分查找实现,欢迎大家提出交流意见. /** *名称:BinarySearch *功能:实现了折半查找(二分查找)的递归和非递归算法. *说明: * 1.要求所查找的数组已有序,并且其 ...
- 分治法 —— 折半查找(递归与非递归)
折半查找(二分查找) 假设为递增有序 基本思路 时间复杂度:O(log2 n) 设a[low-high]是当前查找区间,首先确定该区间的中点位置mid=L(low+high)/2I,然后将待查的k值与 ...
- 递归折半查找法 c语言程序,折半查找法的递归和非递归形式
/* 1.折半查找的查找过程是:先确定待查记录所在区间,然后逐步缩小范围至到找到或者找不到该记录为止. 2.折半查找的性能分析可以由判定树得出,折半查找在查找成功时给定值进行比较的关键字个数至多为⌊l ...
- (C语言)BinarySearch二分搜索/折半查找 --- 递归、非递归
1 /*2 * FILE: BinarySearch.C3 * DATE: 201803064 * ==============5 * DESCRIPTION: 折半查找_递归.非递归实现6 * 二分 ...
- 折半查找递归算法_两篇文章带你了解java基础算法之递归和折半查找
2.1 递归 递归(recursion)是一种常见的解决问题的方法,即把问题逐渐简单化.递归的基本思想就是"自己调用自己",一个使用递归技术的方法将会直接或者间接的调用自己.利用递 ...
- 二分查找原理非递归与递归实现【转载】
二分查找 实现查找指定数值在元素有序的数组中存储的位置(索引),返回该位置(索引). 解题步骤: 定义3个用来记录索引值的变量,变量min记录当前范围最小索引值,初始值为0:变量max记录当前范围最大 ...
最新文章
- 基于Attention机制的轻量级网络架构以及代码实现
- REST API 安全设计指南
- apache ab测试介绍
- Java技巧:深拷贝的两种方式2(转)
- MySQL中的索引(主键索引)
- 推荐我记视频课程笔记的方法和几个工具
- 被曝大裁员,涉及30%员工!公司内斗、高管之间拉帮结派 喜茶回应了...
- 终于,腾讯也要造车了
- ORA-12514: TNS:listener does not currently know of service …
- Fiddler的安装与使用
- 转 波束成形 Beamforming 简述
- js 打印去掉页眉页脚页码_js页面打印去除页眉页脚
- Java实现 LeetCode 383 赎金信
- nexus9刷机全记录
- 免费使用腾讯云每天定时签到京东领取京豆
- 如何使用飞秋FeiQ实现两电脑通信(或传输文件)
- mysql表中字段数据类型_mysql数据表中字段的数据类型有哪些?
- Mind+实现自定义用户库——TM1637数码管
- 如何防止用户论坛恶意灌水
- 数学の入门到入土 第1天