Java 元素的查找
2021-03-03 04:27
标签:code index pre print sea yar array turn sys 1. 循环遍历查找 2. 二分法查找 前提:已经从小到大排序的数组序列。 原理:每次都以中间元素分割,如果中间的元素小于查找元素,则说明查找元素在后面,再从中间元素后面的元素为开始,接着查找,以此类推;如果中间元素大于要查找的元素,则说明查找元素再中间元素的左边,则从中间元素的前一个元素查找; 数组序列:12, 23, 45, 67, 122, 567, 890, 900;需要查找的元素是890 第一次查找: begin = 0 end = 7 mid = (0+7)/2 67
第二次查找: begin = 4 第三次查找: begin = 6 end = 7 mid = 6 890 = 890 程序实现: Java 元素的查找 标签:code index pre print sea yar array turn sys 原文地址:https://www.cnblogs.com/homle/p/14400073.html
end = 7
mid = 5
567
public class SearchArray {
public static void main(String[] args) {
int[] arr = {44,2,11,98,55,34};
int index = ArraySearch(arr,100);
System.out.println("遍历查找结果:");
System.out.println(index == -1? "该元素没有找到":"该元素的下标:"+index);
int[] arr1 = {12, 23, 45, 67, 122, 567, 890, 900};
int index1 = BinaryArray(arr1,45);
System.out.println("二分法查找结果:");
System.out.println(index1 == -1? "该元素没有找到":"该元素的下标:"+index1);
}
/**
* 二分法查找
* @param arr1
* @param i
* @return
*/
public static int BinaryArray(int[] arr1, int i) {
int begin = 0;
int end = arr1.length - 1;
while (begin end){
int mid = (begin + end)/2;
if(arr1[mid] == i){
return mid;
}else if(arr1[mid] i){
begin = mid + 1;
}else {
end = mid - 1;
}
}
return -1;
}
/**
* 遍历查找
* @param arr 需要查找的数组
* @param i 需要查找的元素
* @return 返回值
*/
public static int ArraySearch(int[] arr, int i) {
for (int j = 0; j ) {
if (arr[j] == i){
return j;
}
}
return -1;
}
}
上一篇:python函数的基础知识
下一篇:java-中文字符