⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 binarysearch.java

📁 一个简单的二分查找!java语言实现
💻 JAVA
字号:
public class BinarySearch {

	public static void main(String[] args) {
		int x = Integer.parseInt(args[args.length - 1]);
		System.out.println("所需查找的值为: " + x);
		//System.out.println(x);
		int[] a = new int[args.length - 1];
		for (int i = 0; i < a.length; i++) {
			a[i] = Integer.parseInt(args[i]);
		}
		System.out.println("排序后的结果为: " );
		numSort(a);
		print(a);
		binarySearch(a, x, 0, a.length);

	}

	private static void binarySearch(int[] a, int x,int low, int high) {
		int n = a.length;
		int mid = 0;
		if (low <= high) {
			mid = (low + high) / 2;
			//System.out.println("所需比较的中间值为: \n");
			System.out.println("所需比较的中间值为: \n" + a[mid]);
		}/*else if(low > high) {
			System.exit(-1);
		}*/
		if (a[mid] < x && low <= high) {
			low = mid + 1;
			binarySearch(a, x, low, high);
		}
		if (a[mid] > x && low <= high) {
			high = mid - 1;
			binarySearch(a, x, low, high);
		}
		if (a[mid] == x) {
			int mid1 = mid +1;
			System.out.println("所查元素在排序后的第" + mid1 + "位置!");
		} else if((mid == 0 && a[mid] != x ) || (mid == a.length && a[mid] != x)) {
			System.out.println("所查元素不在该序列中!");
		}

	}

	private static void numSort(int[] a) {
		for (int i = 0; i < a.length; i++) {
			int k = i;
			for (int j = k + 1; j < a.length; j++) {
				if (a[k] > a[j])
					k = j;
			}
			if (k != i) {
				int temp = a[i];
				a[i] = a[k];
				a[k] = temp;
			}
		}
	}

	private static void print(int[] a) {
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i] + " ");
		}
		System.out.println();
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -