排序算法
1、冒泡排序:相邻两个元素比较,符合规则,则交换位置。
public class MaoPao { public static void main(String[] args) { int[] arr={5,1,9,17}; int temp; //控制循环几轮比较 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]) { 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]+","); } } }
2、折半查找
package cd.itcast.suanfa; /* * 定义三个值:最小值,中间值,最大值。 */ public class ZhebBan { public static void main(String[] args) { int[] arr = {1,3,5,7,10,30}; int index = halfSearch(arr, 7); System.out.println(index); } private static int halfSearch(int[] arr,int target) { int max = arr.length-1; int min = 0; int mid = (min+max)/2; while (true) { if (target>arr[mid]) { min = mid +1; }else if(target<arr[mid]){ max = mid -1; }else { return mid; } mid = (min+max)/2; //找不到 if(max<min){ return -1; } } } }