冒泡排序
特点:每一轮排序是将相邻的两个元素比较大小,最终是一个从小到大或者从大到小的有序序列。
规律:1、轮次的规律:总共有n个元素,则需要比较n-1次
2、每一轮的比较规律:每一轮的比较规律比上一轮-1次
代码实现思想:至少需要两个变量参与编码,一个变量控制轮次,一个变量控制每一轮次中比较的次数。即至少两个for循环,外层for循环控制轮次,内层for循环控制当前轮次比较的次数。
举例:将数组中的元素从小到大排序 int[] arr = { 12, 22, 8, 49, 3 };
public class Test- [ ]  {
    public static void main(String[] args) {
        int[] arr = {12, 8, 22, 3, 49};
        int[] resArr = bubbleSort(arr);
        printIntArray(resArr);
    }
    /*
        将输出int类型的数组功能封装成一个方法
     */
    public static void printIntArray(int[] array) {
        for (int i = 0; i < array.length; i++) {
            if (i == 0) {
                System.out.print("[" + array[i] + ", ");  
            } else if (i == array.length - 1) {
                System.out.print(array[i] + "]");
            } else {
                System.out.print(array[i] + ", ");
            }
        }
        //换行
        System.out.println();
    }
    /*
        定义一个方法,进行冒泡排序
        返回值类型:int[]
        参数类型:int[]
     */
    public static int[] bubbleSort(int[] arr) {
        for (int i = 1; i < arr.length ; i++) {
            for (int j = 0; j < arr.length - i; j++) {
                if (arr[j] > arr[j + 1]) {   注意:若将数组从大到小排列,需要改变符号
                    //比较交换
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        return arr;
    }
}
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号