冒泡排序与二分查找算法案例,值得学习哦!

冒泡排序与二分查找算法案例,值得学习哦!

本案例仅供Java学习,大神勿喷!!!

冒泡排序案例

public class BubbleSortTest {
    public static void main(String[] args) {
        /*冒泡排序:两两之间进行比较选出最大,
        选出的最大值不参与下一轮的比较,最后一个只与前一个比较 length-1*/
        //定义一个数组
        int arr[]={1,33,54,67,8,34};
        //循环次数为 arr.length-1
        for (int j=0;j<arr.length-1;j++){
            //如果数组本来就是有序的,就不用去比较,循环一次,没有位置的交换,那么数组就是有序
            boolean orderly=false;
            //每次循环选出一个最大值,选出的最大值不参与下一轮的比较
            for (int i=0;i<arr.length-1-j;i++){
                //如果第一个元素比第二个元素大,交换位置
                if (arr[i]>arr[i+1]){
                    //定义一个临时变量,用来存放交换的元素
                    int temp=arr[i+1];
                    //将第一个元素赋值给第二个元素
                    arr[i+1]=arr[i];
                    //临时变量中的第二个元素赋值给第一个元素
                    arr[i]=temp;
                    orderly=true;
                }
            }
            //如果是有序的就直接退出循环
            if (!orderly)break;
        }
        //循环遍历数组
        for (int i : arr) {
            System.out.println(i);
        }
    }
}

二分查找算法案例

public class MidddleSearchTest {
    public static void main(String[] args) {
        /* 二分查找算法:
         * 1有三个变量:低位,中间,高位
         * 2如果查找的元素大于中间,就比较右边,中间就要变低位;
         * 3如果查找的元素小于中间,就比较左边,中间就要变高位;
         * */
        //定义一个数组
        int arr[]={11,22,33,44,55,66,77,88,99};
        //需要查找的元素
        int element=66;
        //低位索引
        int lowIndex=0;
        //高位索引
        int highIndex=arr.length-1;
        //定义一个初始的索引(-1代表不存在的)
        int index=-1;
        //判断一波,如果查找的元素不是在此数组范围的,直接返回
        if (element<arr[lowIndex]||element>arr[highIndex])return;
        //循环的次数
        while (lowIndex<=highIndex){
            //中间位置
            int middleIndex=(lowIndex+highIndex)/2;
            //当查找的元素大于中间,就比较右边,中间就要变低位;
            if (element>arr[middleIndex]){
                lowIndex=middleIndex+1;
                //查找的元素小于中间,就比较左边,中间就要变高位;
            }else if (element<arr[middleIndex]){
                highIndex=middleIndex-1;
            }else {
                //索引等于中位时,即为查找元素下标
                index=middleIndex;
                System.out.println("查找元素下标:"+index);
                //循环一定要有出口,不然就成了死循环
                break;
            }
        }
        if (index==-1){
            System.out.println("没有查找不到此元素");
        }
    }
}
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值