常用算法 与 XML


 


冒泡排序 ***

升序排序口诀: 
    N 个数字来排队 , 
    两两相比小靠前 .
    外层循环length-1    //控制的是轮数
    内层循环length-i-1  //控制的是每一轮中比较的次数




降序排序口诀:
    N 个数字来排队 , 
    两两相比大靠前 .
    外层循环length-1
    内层循环length-i-1


升序排序案例:

    int[] arr = 任意数组;
    int temp = 0;
    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]){//降序排列的话, 只需要改变比较符号(小于号)
                //实现交换位置:
                temp = arr[j];//备份j下标数据
                arr[j]=arr[j+1];//将j+1下标数据, 存储在j下标的位置
                arr[j+1]=temp;//将备份的j下标的数据, 存储在j+1下标的位置
            }
        }
    }

线性查找 ***

循环遍历, 依次比较 !

int[] arr = {10,20,30,40,50,60,70};
for(int i=0;i<arr.length;i++){
    if(arr[i]==40){
        System.out.println("寻找的数据在"+i+"的位置");
        break;
    }
}

折半查找(二分查找法)

前提条件:   进行二分查找的数据, 必须是有序的!

需要的变量:
    1.  最小范围下标
    2.  最大范围下标
    3.  中间下标:   (随着每次折半,中间下标的结果为:(最小范围+最大范围)/2)

    Scanner input = new Scanner(System.in);

    int [] arr = {10,22,33,55,88,99,111,150,180,222,333,444,555};
    int minIndex = 0;
    int maxIndex = arr.length-1;
    int centerIndex = (minIndex+maxIndex)/2;
    System.err.println("请输入您要寻找的数字:");
    int number = input.nextInt();
    //用于标注寻找到的数据 ,在哪个下标
    int index = -1;
    while(true){
        //使用中间下标的数据, 与 用于传递的数字 进行比较
        if(arr[centerIndex]>number){
            //要撇弃右半部分
            maxIndex = centerIndex-1;
       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值