排序算法

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;
            }
        }
    }
}
原文地址:https://www.cnblogs.com/h-g-f-s123/p/6083144.html