冒泡排序

冒泡排序

public class BubbleSort(){
    
    private BubbleSort(){}

    public static <E extends Comparable<E>> void sort(E[] data){
        for(int i=0;i<data.length-1;i++){
            for(int j=0;j<data.length-i-1;j++){
                if(data[j].compareTo(data[j+1])>0){
                    swap(data,j,j+1);
                }
            }
        }
    }
}
public static <E extends Comparable<E>> void sort2(E[] data){
    for(int i=0;i<data.length-1;i++){
        boolean swapped=false;
        for(int j=0;j<data.length-i-1;j++){
            if(data[j].compareTo(data[j+1])>0){
                swap(data,j,j+1);
                swapped=true;
            }
        }
        if(!swapped){
            break;
        }
    }
}
public static <E extends Comparable<E>> void sort3(E[] data){
    for(int i=0;i<data.length-1;){
        int index = 0;
        for(int j=0;j<data.length-i-1;j++){
            if(data[j].compareTo(data[j+1])>0){
                swap(data,j,j+1);
                index = j+1;
            }
        }
        i = data.length-index;
    }
}

发表评论

发表
Table of Contents