java 折半查找 非递归算法 递归算法
来源:互联网 发布:如何找到域名的ip地址 编辑:程序博客网 时间:2024/05/29 14:10
package datastruct.find;public class BinarySearch {//方法一:非递归折半查找:private static void binarySearch(int a[],int k) {int low=0;int high=a.length-1;int mid;while (low<=high) { mid=(low+high)/2;if (k==a[mid]) {System.out.println(a[mid]+"在"+mid+"位置"); return;}else {if (k<a[mid]) {high=mid-1;}else {low=mid+1;}}}System.out.println("无法查找到该元素!");}//方法二:使用递归的折半查找private static int binarySearch(int a[],int k,int low,int high ) {if (a.length<=0) {System.out.println("数组内元素为空!");return -1;} if (low>high) {System.out.println("无法查找到该元素!");return -1;}else {int mid=(low+high)/2;if (k==a[mid]) {System.out.println(a[mid]+"在"+mid+"位置"); return mid;}else {if (k<a[mid]) { returnbinarySearch(a, k, low, mid-1);}else { return binarySearch(a, k, mid+1, high);}} }} public static void main(String[] args) {int a[]={1,2,3,4,5,6,7};System.out.println("非递归算法:");binarySearch(a, 1);binarySearch(a, 2);binarySearch(a, 3);binarySearch(a, 4);binarySearch(a, 5);binarySearch(a, 6);binarySearch(a, 7);System.out.println("递归算法:");binarySearch(a, 1, 0, a.length-1);binarySearch(a, 2, 0, a.length-1);binarySearch(a, 3, 0, a.length-1);binarySearch(a, 4, 0, a.length-1);binarySearch(a, 5, 0, a.length-1);binarySearch(a, 6, 0, a.length-1);binarySearch(a, 7, 0, a.length-1);}}
运行结果:
非递归算法:
1在0位置
2在1位置
3在2位置
4在3位置
5在4位置
6在5位置
7在6位置
递归算法:
1在0位置
2在1位置
3在2位置
4在3位置
5在4位置
6在5位置
7在6位置
阅读全文
0 0
- java算法:折半查找(递归算法和非递归算法)
- java 折半查找 非递归算法 递归算法
- 折半查找(递归算法)
- php折半查找算法-递归实现和非递归实现
- 折半查找法的递归与非递归算法
- 折半查找的递归算法和非递归
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- 递归的折半查找算法
- 折半查找的递归算法
- 递归的折半查找算法
- 折半查找的递归算法
- 折半查找的递归算法
- Java版 非递归折半查找
- Android EventBus源码解析 带你深入理解EventBus
- python模块
- 杂文-远程过程调用协议RPC(Remote Procedure Call Protocol)
- IJPay 让支付触手可及-文中有视频
- 无需客户端探测远端电脑已开放的TCP 端口
- java 折半查找 非递归算法 递归算法
- 计算机英语·M
- MySQL优化系列(三)--索引的使用、原理和设计优化
- 第一次数据库作业(第3章)
- c++实验6-【项目5:字符串操作】
- GDB调试时的参数设置
- 《Java Web开发实战经典》.(李兴华).[PDF]pdf
- mac平台创建文件的md5值
- Python机器学习(三):Logistic回归建模分类实例——信用卡欺诈监测(下)