标签:NPU 输出 input [] 最大值 int return 打印 时间复杂度
查找数组中的关键字
package learning; import java.util.Arrays; /** * 二分法查找 * @author Lee * */ public class TestTwo { public static void main(String[] args) { int[] arr=new int[] {1,9,4,7,5,59,47,29,25}; Arrays.sort(arr); System.out.println("排序后:"+Arrays.toString(arr)); System.out.println("目标元素的位置:"+binary(arr, /*例如查找7*/ 7)); } public static int binary(int[] arr,int value) { int head=0; int tail=arr.length-1; while(head<=tail) { int mid=(head+tail)/2; if(value==arr[mid]) { return mid; } if(value<arr[mid]) { tail=mid-1; } if(value>arr[mid]) { head=mid+1; } } return -1; } }
打印输出结果: 排序后:[1, 4, 5, 7, 9, 25, 29, 47, 59] 目标元素的位置:3
#########################################分隔符#############################################
控制台输入一组数,找出关键字和最大值
package learning; import java.util.Arrays; import java.util.Scanner; /** * 二分法查找 * @author Lee * */ public class TestTwo { public static void main(String[] args) { int[] arr=new int[10] ; for(int i=0;i<10;i++) { @SuppressWarnings("resource") Scanner input =new Scanner(System.in); System.out.println("please input 10 number:"); arr[i]=input.nextInt(); System.out.println("输入的数字为:"+Arrays.toString(arr)); } Arrays.sort(arr); System.out.println("排序后:"+Arrays.toString(arr)); int local=arr.length-1; int max=arr[local]; System.out.println("目标元素的位置:"+binary(arr, 25)); System.out.println(max); } public static int binary(int[] arr,int value) { int head=0; int tail=arr.length-1; while(head<=tail) { int mid=(head+tail)/2; if(value==arr[mid]) { return mid; } if(value<arr[mid]) { tail=mid-1; } if(value>arr[mid]) { head=mid+1; } } return -1; } }
打印输出结果:
please input 10 number:
11
输入的数字为:[11, 0, 0, 0, 0, 0, 0, 0, 0, 0]
please input 10 number:
22
输入的数字为:[11, 22, 0, 0, 0, 0, 0, 0, 0, 0]
please input 10 number:
33
输入的数字为:[11, 22, 33, 0, 0, 0, 0, 0, 0, 0]
please input 10 number:
25
输入的数字为:[11, 22, 33, 25, 0, 0, 0, 0, 0, 0]
please input 10 number:
55
输入的数字为:[11, 22, 33, 25, 55, 0, 0, 0, 0, 0]
please input 10 number:
77
输入的数字为:[11, 22, 33, 25, 55, 77, 0, 0, 0, 0]
please input 10 number:
44
输入的数字为:[11, 22, 33, 25, 55, 77, 44, 0, 0, 0]
please input 10 number:
99
输入的数字为:[11, 22, 33, 25, 55, 77, 44, 99, 0, 0]
please input 10 number:
88
输入的数字为:[11, 22, 33, 25, 55, 77, 44, 99, 88, 0]
please input 10 number:
100
输入的数字为:[11, 22, 33, 25, 55, 77, 44, 99, 88, 100]
排序后:[11, 22, 25, 33, 44, 55, 77, 88, 99, 100]
目标元素的位置:2
100
标签:NPU 输出 input [] 最大值 int return 打印 时间复杂度
原文地址:https://www.cnblogs.com/silly-bird/p/10326212.html