java实现二分法(递归、非递归)

标签: 算法
6人阅读 评论(0) 收藏 举报
分类:

package  arithmetic ;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;

import javax.sound.midi.MidiChannel;


public class Test{
public static void main(String[] args) {
int[] arrs = new int[10];
for (int i = 0; i < arrs.length; i++) {
arrs[i]=i;
}
System.out.println(serNumber(arrs, 4 , 0, arrs.length-1));
System.out.println(serachNumber(arrs,7));

}

//传如数组和要查找的数字
public static Object serachNumber(int[] arrs,int serNum){
if (arrs == null)
return null;

int start =0;
int end = arrs.length-1;
int mid =0;
while(start<=end){
mid = (start+end )/2;
//与中间值比较确定在左边还是右边区间,以调整区域 
if(serNum<arrs[mid]){
end = mid-1;
}else if(serNum>arrs[mid]){
start= mid +1;
}else {
return "存在";
}
}
return "没找到";
}

public static int serNumber(int[] arrs,int num ,int begin,int end){
if(arrs ==null || begin > end || num< begin ||num>end){
return -1;
}
int mid = (begin+end)/2;
if(arrs[mid]<num){
return serNumber(arrs, num , mid, end);
}else if (arrs[mid]>num){
return serNumber(arrs, num , begin, mid);
}else{
return mid;
}
}
}
查看评论

递归和非递归两种方式实现二分法查找(java)

public class BinarySearch { public static void main(String[] args) { int[] arr = {1,3,5,7,9,11...
  • u014430697
  • u014430697
  • 2015-11-21 22:13:14
  • 3185

二分法查找(递归和非递归)

二分法的前提是:集合中的元素是按一定规则排序的。对List中的String排序,以及二分法实现示例:package test;import java.util.ArrayList; import ja...
  • u013325266
  • u013325266
  • 2016-09-06 16:45:46
  • 218

Binary Search二分法搜索递归和非递归C++程序

二分法基本上学计算机的都听过,但是有人不知道的就是其实二分法是减治法的思想。 所谓减治法和分治法有一个主要差别就是减治法是减去一般,就是分治之后只需要解决原问题的一半就可以了得到全局问题的解了。所以速...
  • kenden23
  • kenden23
  • 2013-11-14 10:22:34
  • 4168

二分法查找递归与非递归

  • 2010年12月30日 21:29
  • 2KB
  • 下载

java 用二分法(递归)实现查找指定元素

用二分法查找在数组a[]中指定的元素key public class BinarySearch { public static void main(String[] args) { int[] a =...
  • theHumble
  • theHumble
  • 2017-02-22 17:38:41
  • 419

快速排序 的原理及其java实现(递归与非递归)

快速排序 的原理及其java实现(递归与非递归)
  • mine_song
  • mine_song
  • 2017-03-20 09:25:49
  • 733

Java实现快速排序递归和非递归

/** * 快速排序 * */ public class QuickSort{ /** * 递归一 * */ public static void sort1(int[] arr...
  • mwb1219
  • mwb1219
  • 2016-04-27 18:22:52
  • 717

使用循环和递归方法实现二分法搜索

对于已排序的序列,实现二分法搜索算法,有循环和递归两种策略。 对于这种算法,中心点一直是一个开区间,因此下一次搜索时新区间应该相应的+-1,从而最终start>end # -*- coding: ...
  • shaungyezhai
  • shaungyezhai
  • 2016-07-13 17:55:44
  • 1145

java实现递归快排和非递归快排

package sort; import java.util.Random; public class QuickSort { public static Random random = new...
  • chenzhichao
  • chenzhichao
  • 2016-05-28 18:23:46
  • 796

归并排序的递归与非递归实现Java

public static int[] sort(int[] nums, int low, int high) { int mid = (low + high) / 2; ...
  • lll1204019292
  • lll1204019292
  • 2016-08-28 16:20:33
  • 631
    个人资料
    等级:
    访问量: 891
    积分: 107
    排名: 125万+
    文章存档
    最新评论