排序并查找
对数组{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("没有要查找的数据!"); }