线性查找与二分法代码如下:二分法查找的前提是所要查找的数组必须是有序的!
public static void main(String[] args) { int[] arr = new int[]{2, 3, 4, 8, 6, 7, 9}; int dest = 10; boolean flag = true; for (int i = 1; i < arr.length; i++) { if (arr[i] == dest) { System.out.println("线性查找找到了,位置为:" + i); flag = false; break; } } if (flag) { System.out.println("很抱歉,线性查找没找到"); } //二分法 int[] arr2 = new int[]{2, 3, 5, 7, 9, 12, 14, 15, 16, 17}; int start = 0; int end = arr2.length - 1; int des = 16; boolean flag1 = true; while (start <= end) { int middle = (start + end) / 2; if (des == arr2[middle]) { System.out.println("二分法找到了,位置为:" + middle); flag1 = false; break; } else if (des > arr2[middle]) { start = middle + 1; } else { end = middle - 1; } } if (flag1) { System.out.println("抱歉,通过二分法没有找到!!"); } }
很抱歉,线性查找没找到
二分法找到了,位置为:8
冒泡排序:代码如下
public static void main(String[] args) { //冒泡排序 int[] arr = new int[]{4, 3, 5, 8, 9, 12, 14, 15, 19, 17}; for(int i=0;i<arr.length;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; } } } for (int i=0;i<arr.length;i++){ System.out.print(arr[i]+"\t"); } System.out.println(); }
3 4 5 8 9 12 14 15 17 19
排序算法的补充说明: