1.冒泡排序

思想:从头开始扫描待排序的元素,在扫描过程中依次对相邻元素进行比较,将关键字值大的元素后移。每经过一趟排序后,关键字值最大的元素将移到末尾,此时记下该元素的位

置,下一趟排序只需要比较到此位置为止,直到所有元素都已有序排列。

特点:每一次将最具有特征(最小、最大)的一个数放到序列的最前面,或者最后面。

这种排序方法由于每一次找到的数字都像是气泡一样从数组里冒出来而得名为“冒泡排序”。 

public class BubbleSort {
    public static void main(String[] args) {
        int [] array={23,56,7,8,12,0,38};
        System.out.println("排序前的数组为:");
        for(int i=0;i<array.length;i++){
            System.out.print(array[i]+" ");
        }
        System.out.println();
        sort(array);
        System.out.println("排序后的数组为:");
        for(int i=0;i<array.length;i++){
            System.out.print(array[i]+" ");
        }
    }
    
    private static void sort(int[] array) {
        //循环趟数
        for(int i=0;i<array.length;i++){
            //比较次数
            for(int j=0;j<array.length-1-i;j++){
                if(array[j]>array[j+1]){//判断条件,升序排列
                    int temp=array[j];
                    array[j]=array[j+1];
                    array[j+1]=temp;
                }
            }
        }
    }
    
}

2.选择排序

思想:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 

public class SelectSort {
    public static void main(String[] args) {
        int [] array={23,56,7,8,12,0,38};
        System.out.println("排序前的数组为:");
        for(int i=0;i<array.length;i++){
            System.out.print(array[i]+" ");
        }
        System.out.println();
        sort(array);
        System.out.println("排序后的数组为:");
        for(int i=0;i<array.length;i++){
            System.out.print(array[i]+" ");
        }
    }
    //选择排序
    private static void sort(int[] array) {
        //排序趟数
        for(int i=0;i<array.length-1;i++){
            //每趟排序次数
            for(int j=i+1;j<array.length;j++){
                if(array[i]>array[j]){
                    int temp=array[j];
                    array[j]=array[i];
                    array[i]=temp;
                }
            }
        }
    }
}