测试在线笔试题
- 请使用您熟悉的语言,编写二分查找法,找出某个值在给定的有序数组中的位置。
如:
Input: [1, 3, 5, 7, 9, 11, 13, 15], 11
Output: 6
注: 二分查找(Binary Search),是一种在有序数组中查找某一特定元素的查找算法。查找过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则查找过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。
代码如下:
import java.util.Scanner;
public class InsertValue {
public static void main(String[] args) {
System.out.println("请输入几个数并用逗号隔开:");
Scanner sc = new Scanner(System.in);
String str = sc.next().toString();//定义一个字符str用于在输入数后面
String[] arr = str.split(",");//字符串数组,存放逗号","
int[] iArr = new int[arr.length];//int 数组,长度为字符串数组的长度,用于控制数组长度
for(int j = 0; j<iArr.length;j++) {
iArr[j] = Integer.parseInt(arr[j]);//录入数据到数组中
//System.out.println(iArr[j]+" ");//打印出来