新手·小白

排序并查找

对数组{1,3,9,5,6,7,15,4,8}进行排序,然后使用二分查找元素 6 并输出排序后的下标。

int[] arr= {1,3,9,5,6,7,15,4,8};
		//冒泡排序:N个数字来排队,两两相比小靠前;外层循环N-1,内层循环N-1-i;
		for(int i=0;i<arr.length-1;i++) {
			for(int j=0;j<arr.length-1-i;j++) {
				if(arr[j]>arr[j+1]) {
					int temp=arr[j];
					arr[j]=arr[j+1];
					arr[j+1]=temp;
				}
			}
		}
		System.out.println("排序后的数组元素:");
		for(int i=0;i<arr.length;i++) {
			System.out.print(arr[i]+"\t");
		}
		System.out.println();
		//二分查找
		int num=15;
		//三个下标
		int min=0;
		int max=arr.length-1;
		int mid=(min+max)/2;
		
		while(true) {
		if(arr[mid]>num) {
			max=mid-1;
		}else if(arr[mid]<num) {
			min=mid+1;
		}else {
			//
			System.out.println("找到了数据!下标为:"+mid);
			break;
		}
		if(min>max) {
			mid=-1;
			break;
		}
		mid=(min+max)/2;
		}
		if(mid==-1) {
			System.out.println("没有要查找的数据!");
		}

  

posted on 2021-09-22 11:49  新手·小白  阅读(39)  评论(0编辑  收藏  举报

导航