zoukankan      html  css  js  c++  java
  • 冒泡排序与二分法查找及for循环增强

    冒泡排序

    我的理解:

      用到双重循环,数组的长度多少,外循环就循环多少次。10个数组,外循环就循环10次。把双重循环看成行和列,外循环是行,内循环是列。

    第一次由外循环进入内循环。10个元素要比较9次。

    第二次由外循环进入内循环。要比较8次。

    第三次由外循环进入内循环。要比较7次。

    以此类推

    总会把你想要的最大数或最小数放到最后一个位置,接着这个数不用再做比较,因此,内循环的次数依次减少(数组的长度-1-i)

    内循环实现换位就ok了。

    (我理解的好土。。。。。。。。。。。。哈哈!)

    代码示例

    package cn.array2;
    
    import java.util.Arrays;
    
    public class Maopao {
        public static void main(String[] args) {
            int[]b= {5,8,7,2,6,1,5};
            sort(b);
            System.out.println(Arrays.toString(b));
        
    }
        public static void sort(int[] a) {
            int temp;
            for (int i = 0; i < a.length; i++) {
                for (int j = 0; j < a.length-1-i; j++) {
                    if(a[j]<a[j+1]) {
                        temp=a[j];
                        a[j]=a[j+1];
                        a[j+1]=temp;
                    }
                    
                }
            }
            
        }
    }

    二分法查找(使用它时首先要用sort()对数组排序)(查找速度很快)

    package cn.array2;
    
    import java.util.Arrays;
    //import java.util.Arrays;
    
    public class Array {
        public static void main(String[] args) {
            int []a= {45,8,2,38,9,8,2,22,1};
            Arrays.sort(a);                                              //使用二分法查找,必须先对数组进行排序
            System.out.println(Arrays.toString(a));                      //toString 跟Object的toString什么关系
            System.out.println("该元素的索引:"+Arrays.binarySearch(a,22));//二分法查找,返回索引值,如果没有返回负的(没找到)
            Arrays.fill(a,2,4,125);                                      //数组填充,末位不填充
            System.out.println(Arrays.toString(a));
            
        }
    }

    结果:

    增强版for循环(遍历数组很方便)

    package cn.array2;
    
    public class Test {
        public static void main(String[] args) {
            int [] a= {45,4,58,1,5,56,4,45,5,4};
            for(int i=0;i<a.length;i++) {
                int m=a[i];
                System.out.print(m+"	");
            }
            System.out.println();
            
            //增强版for循环
            
            for(int n:a) {
                System.out.print(n+"	");
            }
            
        }
    }
  • 相关阅读:
    第三次上机
    第5次作业
    第二次上机练习
    第三次作业
    第一次作业
    第一次作业
    第二次上机练习
    第二次作业
    第一次作业
    第四周作业
  • 原文地址:https://www.cnblogs.com/ssxblog/p/11206206.html
Copyright © 2011-2022 走看看