美文网首页
冒泡,选择,二分查找

冒泡,选择,二分查找

作者: 好kan故事 | 来源:发表于2024-02-20 19:22 被阅读0次

@TOC

冒泡排序

从前向后依次两两比较,将大的排到后面

public class MaoPao {

    public static void main(String[] args) {
        int[] arr={23,55,20,98,100,72};
//        定义一个循环控制冒泡总共需要几轮(数组的长度-1轮)
        for (int i=0;i<arr.length-1;i++){
//            控制每轮比较几次
            for (int j=0;j<arr.length-i-1;j++){
                if (arr[j]>arr[j+1]){
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        System.out.println("数组"+ Arrays.toString(arr));
    }
}

选择排序

拿当前的和后面的每个依次比较,比他们小就排在前面

public class XuanZe {

    public static void main(String[] args) {
        int[] arr={2,5,1,8,10,7};
//      定义一个循环控制几轮
        for (int i=0;i<arr.length-1;i++){
//            定义一个每轮比较几次,拿当前位置的元素与后面的元素比较
//            遍历后面的元素
            for (int j=i+1;j<arr.length;j++){
//                拿当前i和后面指定j进行大小比较,后面较小的换到前面
                if (arr[j]<arr[i]){
                    int temp=arr[j];
                    arr[j]=arr[i];
                    arr[i]=temp;
                }
            }
        }

        System.out.println("数组"+ Arrays.toString(arr));
    }
}

二分查找排序

二分查找对数组有要求,前提是数组必须排好序
每次先与中间的元素比较,如果大于就向右边找,如果小于就向左边找,
如果等于就返回该元素的索引位置,如果不存在就返回 -1,综合性能比较好

public class Erfenchazhao {

    public static void main(String[] args) {
        int[] arr={5,8,10,11,12,15,16,17,21,30,40,50,100,101,500};
        int index=binarySerach(arr,30);
        System.out.println(index);
    }

    private static int binarySerach(int[] arr, int number) {
        int start=0; //起始位置
        int end=arr.length-1; // 结束位置
//        定于一个循环不断的折中寻找
        while (start<=end-1){
//            定义中间元素的索引
            int middleIndex=(start+end)/2;
//           拿当前元素的值与中间元素比较
            if (number>arr[middleIndex]) {
//                当前元素大于中间元素,向右找,起始位置索引要加1
                start = middleIndex + 1;
            }else if (number<arr[middleIndex]){
//            当前元素小于中间元素,向左找,结束位置索引-1
                end=middleIndex-1;
            }else {
                return middleIndex;
            }
        }

        return -1;
    }

}

相关文章

网友评论

      本文标题:冒泡,选择,二分查找

      本文链接:https://www.haomeiwen.com/subject/pgobadtx.html