java语言实现数组搜索

2025-10-09 00:04:43

1、首先打开eclipse

java语言实现数组搜索

2、新建一个java项目,名字随意起

java语言实现数组搜索

3、名字起好后,点击完成

java语言实现数组搜索

4、右键点击项目名称,新建,类

java语言实现数组搜索

5、类的名字叫TextArraySearch

包的名字叫 com.zf.s2

点击完成

java语言实现数组搜索

6、首先声明一个包,导入类

package com.zf.s2;//创建一个包

import java.util.Arrays;

java语言实现数组搜索

7、运用递归和二分法搜索数组元素的类

public class TextArraySearch {

//运用递归和二分查找特定整数在整型数组中的位置

public static int binarySearch1(int[] array, int index, int beginIndex,

int endIndex) {

int midIndex = (beginIndex + endIndex) / 2;

if (index < array[beginIndex] || index > array[endIndex]

|| beginIndex > endIndex)//判断要搜索的数字是否合理

return -1;

if (index < array[midIndex]) {//搜索数字位于数组前半部分

return binarySearch1(array, index, beginIndex, midIndex - 1);//运用递归

} else if (index > array[midIndex]) {//搜索数字位于数组后半部分

return binarySearch1(array, index, midIndex + 1, endIndex);//运用递归

} else {

return midIndex;//搜索数字位于数组中间

}

}

java语言实现数组搜索

8、运用非递归和二分查找特定整数在整型数组中的位置

public static int binarySearch2(int[] array, int index) {

int beginIndex = 0;//起始位置,指的是元素下标

int endIndex = array.length - 1;//结束位置

int midIndex = -1;

if (index < array[beginIndex] || index > array[endIndex]

|| beginIndex > endIndex)//判断要搜索的数字是否合理

return -1;

//循环判断,根据起始位置与结束位置是否相等

while (beginIndex <= endIndex) {

midIndex = (beginIndex + endIndex) / 2;//获得数组中间位置

if (index < array[midIndex]) {//搜索数字位于数组前半部分

endIndex = midIndex - 1;//重新定位结束位置

} else if (index > array[midIndex]) {//搜索数字位于数组后半部分

beginIndex = midIndex + 1;//重新定位起始位置

} else {

return midIndex;//搜索数字位于数组中间

}

}

return -1;

}

java语言实现数组搜索

9、主函数

public static void main(String []args){//java程序的主入口处

int []array=new int[]{12,3,2,18,24,15,20};//声明数组并初始化

int number=18;//声明变量

int num=1;

Arrays.sort(array);//二分法搜索元素之前必须对数组进行排序

System.out.println("元素"+number+"所在的位置在:"+binarySearch1(array,number,0,array.length-1));

System.out.println("元素"+number+"所在的位置在:"+binarySearch2(array,number));

System.out.println("元素"+num+"所在的位置在:"+binarySearch2(array,num));

}

}

java语言实现数组搜索

10、运行结果

java语言实现数组搜索

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢