美文网首页
数组排序

数组排序

作者: Jacky_MYD | 来源:发表于2020-07-28 14:16 被阅读0次

    冒泡排序

    int[] arr = new int[] { 34, 23, 45, 67, 23, 66, 88, 22, 54, 12 };
     for (int i = 0; i < arr.length - 1; i++) {
        for (int j = 0; j < arr.length - 1 - i; j++) {
            int temp = arr[j];
    
            if (arr[j] > arr[j + 1]) {
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    for (int i = 0; i < arr.length - 1; i++) {
        System.out.print(arr[i] + "\t");
    }
    

    快速排序

    public static void quickSort(int[] arr, int low, int height) {
            int i,j,temp,t;
        if (low > height) {
            return;
        } 
        i = low;
        j = height;
        // temp就是基准位
        temp = arr[low];
        while(i < j) {
            // 先看右边,依次往左边递减
            while(temp <= arr[j] && i < j) {
                j--;
            }
            // 在看左边,依次往右递增
            while(temp >= arr[i] && i < j) {
                i++;
            }
                
            // 如果满足条件则交换
            if(i < j) {
                t = arr[j];
                arr[j] = arr[i];
                arr[i] = t;
            }
        }
        //最后将基准为与i和j相等位置的数字交换
        arr[low] = arr[i];
        arr[i] = temp;
            
        // 递归调用左半数组
        quickSort(arr, low, j-1);
        // 递归调用右半数组
        quickSort(arr, j+1, height);
    }
    
    int[] arr1 = {10,5,2,4,17,62,33,4,20,1,8,9,19};
    quickSort(arr1, 0, arr1.length-1);
    for (int i = 0; i < arr1.length; i++) {
            System.out.print(arr1[i] + "\t");
    }
    

    相关文章

      网友评论

          本文标题:数组排序

          本文链接:https://www.haomeiwen.com/subject/ncyfrktx.html