Java排序算法之冒泡排序

时间:2021-05-25 10:57:23

package demosort;
/*
* 在要排序的一组数中,
* 对当前还未排好序的范围内的全部数,
* 自上而下对相邻的两个数依次进行比较和调整,
* 让较大的数往下沉,较小的往上冒。
* 即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
*/
public class BubbleSort {

    public  BubbleSort(){  
        int a[]={12,15,39,25,53,91};  
        int temp=0;  
        for(int i=0;i<a.length-1;i++){  
            for(int j=0;j<a.length-1-i;j++){
         //这里不减i也可以,但是会增加遍历的次数。
         // 冒泡这里是大的数放在最后面所以,可以减少遍历的次数
            if(a[j]>a[j+1]){  
                temp=a[j];  
                a[j]=a[j+1];  
                a[j+1]=temp;  
            }  
            }  
        }  
        for(int i=0;i<a.length;i++)  
        System.out.print(a[i]+" ");     
    }  

public static void main(String[] args) {
    BubbleSort bs=new BubbleSort();

}

}

     for(int i = 0 ; i <= n ; i++){
        for (int j = 0; j <n- i-1;j++) {
        //异或运算就不用临时变量了
            if (A[j+1] < A[j]) {
                A[j] = A[j+1]^A[j];
                A[j+1] = A[j+1]^A[j];
                A[j] =  A[j+1]^A[j];
            }
        }
    }