二分查找算法(java)二分搜索
2017-12-04 16:41
169 查看
二分搜索技术
问题描述:
n个排序好的元素。在这n个元素中找出一特定元素x
问题思考:
首先给定的是排序好的 其次是利用排序好的这个条件,二分法搜索充分利用这个已知排序好的条件
算法实现:
import java.util.Scanner;
class BinSearch{
//二分搜索法算法
public
static int binarySearch(int
a[], int
x, int
n){
int
left = 0;
int
right = n - 1;
while(left <=
right){ //跳出条件
int
middle = (left+
right)/2;
// int middle = left + (right - left)/2;
if(x ==
a[middle])
return middle;
if(x >
a[middle])
left = middle + 1;
else
right = middle- 1;
}
return -1;
}
}
//主类
public
class_BinarySearch {
staticScanner
cin= newScanner(System.in);
public
static void main(String[]
args){
System.out.print("Please input a integer(the size of array): ");
int
sizeOfArray = cin.nextInt();
int
a[] = new
int[sizeOfArray];
System.out.print("Please input " +
sizeOfArray + " sorted numbers: ");
for(int
i = 0; i <
sizeOfArray; i++)
a[i] =
cin.nextInt();
System.out.print("Please input the number you want to search: ");
int
x = cin.nextInt();
System.out.print("Location: " + BinSearch.binarySearch(a,
x, sizeOfArray));
}
}
问题描述:
n个排序好的元素。在这n个元素中找出一特定元素x
问题思考:
首先给定的是排序好的 其次是利用排序好的这个条件,二分法搜索充分利用这个已知排序好的条件
算法实现:
import java.util.Scanner;
class BinSearch{
//二分搜索法算法
public
static int binarySearch(int
a[], int
x, int
n){
int
left = 0;
int
right = n - 1;
while(left <=
right){ //跳出条件
int
middle = (left+
right)/2;
// int middle = left + (right - left)/2;
if(x ==
a[middle])
return middle;
if(x >
a[middle])
left = middle + 1;
else
right = middle- 1;
}
return -1;
}
}
//主类
public
class_BinarySearch {
staticScanner
cin= newScanner(System.in);
public
static void main(String[]
args){
System.out.print("Please input a integer(the size of array): ");
int
sizeOfArray = cin.nextInt();
int
a[] = new
int[sizeOfArray];
System.out.print("Please input " +
sizeOfArray + " sorted numbers: ");
for(int
i = 0; i <
sizeOfArray; i++)
a[i] =
cin.nextInt();
System.out.print("Please input the number you want to search: ");
int
x = cin.nextInt();
System.out.print("Location: " + BinSearch.binarySearch(a,
x, sizeOfArray));
}
}
相关文章推荐
- java实现二分搜索树
- [转]编程珠玑第五章二分搜索(折半查找)之java实现
- java 二分搜索
- 实验一 分治与递归―二分搜索 java实现
- Java使用分治算法实现排序数索引功能示例【二分搜索】
- java-顺序和乱序数组的二分搜索
- 二分搜索及其变形--java实现
- 算法与数据结构-二分搜索 讲解与java代码实现
- PAT甲级1010【Radix】二分搜索java题解
- 编程珠玑第五章二分搜索(折半查找)之java实现
- Java 分治算法实现排序数索引(二分搜索)
- 二分搜索的java实现
- Java 二分搜索
- csu 1114平方根大搜索(JAVA大小数+二分)
- 二分搜索学习笔记 Java实现
- 一步一步学习java数组学习(二分搜索)
- [Java]二分搜索(二分查找)
- 二分搜索问题详解(java)
- 算法入门---java语言实现的二分搜索树小结
- JDK自带的二分查找算法和自己写的普通二分查找算法的比较(java二分查找源代码)