二分搜索的递归实现算法
来源:互联网 发布:淘宝女士冬季鞋款 编辑:程序博客网 时间:2024/06/06 00:49
二分搜索的递归实现算法
题目描述:
Java实现:
//import java.util.Arrays;//import java.util.Random;import java.util.Scanner;public class BinarySearch {//二分搜索 递归实现 public static void main(String[] args) { // TODO 自动生成的方法存根 Scanner scan = new Scanner(System.in); //System.out.print("二分搜索,输入二分搜索元素个数:"); int n = scan.nextInt(); //手动输入数组 int list[] = new int[n]; for (int i = 0; i < list.length; i++) list[i] = scan.nextInt(); list = bubbleSort(list);// //随机生成数组// Random random = new Random();// int list[] = new int[n];// for (int i = 0; i < list.length; i++)// list[i] = random.nextInt(11);// //将随机生成的数组排序// Arrays.sort(list);// //打印随机生成的数组// System.out.print("随机生成的0-10数组:");// for (int i = 0; i < list.length; i++)// System.out.print(list[i] + " ");// System.out.println();// System.out.print("二分搜索,输入要搜索的元素:"); int num = scan.nextInt(); System.out.println( er(list, 0, list.length-1, num)); } //非递归 public static int binarySearch1(int a[], int x, int n){ //在a[0] <= a[1] <= ... <= a[n-1]中搜索x (有序数组) //找到x时返回其在数组中的位置,否则返回-1 int left = 0; int right = n-1; while(left <= right){ int middle = (left + right)/2; if(x == a[middle]) return middle; if(x > a[middle]) left = middle+1; else right = middle-1; } return -1; } //递归 public static int er(int a[],int start,int stop,int num) { if(start>stop) return -1; int mid=(start+stop)/2; if(a[mid]==num) return mid; if(a[mid]>num) return er(a,start,mid-1,num); return er(a,mid+1,stop,num); } public static int[] bubbleSort(int[] args){//冒泡排序算法 for(int i=0;i<args.length-1;i++){ for(int j=i+1;j<args.length;j++){ if (args[i]>args[j]){ int temp=args[i]; args[i]=args[j]; args[j]=temp; } } } return args; }}
阅读全文
0 0
- 二分搜索的递归实现算法
- 二分搜索的递归实现算法
- 递归实现的二分搜索
- 二分搜索算法(递归和非递归实现)
- 二分搜索算法的实现
- 二分搜索的递归和循环实现
- 二分搜索的递归与非递归实现
- 二分搜索非递归和递归算法
- Java实现二分查找的递归算法
- 漫谈递归:二分查找算法的递归实现
- 二分查找算法的递归与非递归实现
- 二分查找算法的递归与非递归实现
- 实现二分查找算法的递归及非递归。
- 实现二分查找算法的递归及非递归
- 二分搜索算法(折半查找)原理以及递归(recuition),迭代(iteration)的两种实现源代码
- 二分搜索算法(折半查找)原理以及递归(recuition),迭代(iteration)的两种实现源代码
- 二分查找算法递归实现
- 递归算法实现二分查找
- 微信APP支付接口业务流程
- BAT文件语法和技巧
- 访问Action 报错
- 区分PATCH与PUT、POST方法
- List的subList的用法
- 二分搜索的递归实现算法
- 在Webview中打开app
- Scikit-learn 秘籍 第四章 使用 scikit-learn 对数据分类
- 回声消除概述
- 使用Jedis遇到 ERR operation not permitted
- 人脸识别的十个概念
- c++对编码格式ANSI utf8 unicode 进行转换
- linux设置开机启动级别
- APP客户端数据埋点