折半查找、二分法前提是列表是有序的。 public static int binarySearch(int[] arr, int des) { //定义初始最小、最大索引 int low = 0; int high = arr.length - 1; //确保不会出现重复查找,越界 while(low<=high) { int m=(high+low)/2; if(arr[m]>des) { high=m-1; }else if(arr[m]<des) { low=m+1; }else { return des; } } return -1; } for(int i=0;i<arr.length;i++) { for(int j=0;j<arr.length-i-1;j++) { int d=0; if(arr[j]>arr[j+1]) { d=arr[j]; arr[j]=arr[j+1]; arr[j+1]=d; } } }