冒泡排序和二分法

来源:互联网 发布:linux百度翻译 编辑:程序博客网 时间:2024/05/22 06:48

排序的要点 1.比较 2.换位

冒泡排序

public class  Maopao{

   public static void main(String[]args){

         ini a[]={1,2,,32,44,45,89,-7,9};

     for(int i=1;i<=a.length-1;i++){    //控制循环次数,循环次数等于数组长度减一

           int temp;     //定义一个临时变量来做换位

       for(int j=0;j<=a.length-i;j++){       //前一位和后一位进行比较随循环次数的增加,比较次数对应减少

             if(a[j]>a[j+1]){

              temp=a[j];

              a[j]=a[j+1];

              a[j+1]=temp;}}}

         for(int k:a){

           System.out.println(k);}

}

}


二分法

public class TwoDemo {
     public static void main(String[] args) {
        int a[] = { 1, 3, 6, 8, 12, 56, 100 };
        int e = ef(a, 2);
        System.out.println(e);
    }

    public static int ef(int a[], int n) {
        // 砍半取中间值进行比较
        int s = 0, e = a.length - 1;
        int m = (s + e) / 2;
        while (a[m] != n && e > s) {
            // 在前半部分
            if (a[m] > n) {
                e = m - 1;
            }
            // 在后半部分
            else if (a[m] < n) {
                s = m + 1;
            }
            m = (s + e) / 2;
        }
        //
        if (a[m] == n) {
            return m;
        } else {
            return -1;
        }

    }
}


原创粉丝点击