中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JAVA中數組怎么從小到大排序

發布時間:2023-03-30 17:15:43 來源:億速云 閱讀:135 作者:iii 欄目:開發技術

本篇內容介紹了“JAVA中數組怎么從小到大排序”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

快速排序

快速排序是一種比較高效的排序算法,采用“分而治之”的思想,通過多次比較和交換來實現排序,在一趟排序中把將要排序的數據分成兩個獨立的部分,對這兩部分進行排序使得其中一部分所有數據比另一部分都要小,然后繼續遞歸排序這兩部分,最終實現所有數據有序。

public static void quickSort(int[] arry,int left,int right){
        //運行判斷,如果左邊索引大于右邊是不合法的,直接return結束此方法
        if(left>right){
            return;
        }
        //定義變量保存基準數(第一次進入方法最左邊的數字下標為0)
        int base = arry[left];
        //定義變量i,指向最左邊
        int i = left;
        //定義j ,指向最右邊(第一次進入方法最右邊數字下標為數組的長度減1)
        int j = right;
        //當i和j不相遇的時候,再循環中進行檢索
        while(i!=j){
            //先由j從右往左檢索比基準數小的,如果檢索到比基準數小的就停下。
            //如果檢索到比基準數大的或者相等的就停下
            while(arry[j]>=base && i<j){
                j--; //j從右往左檢索
            }
            while(arry[i]<=base && i<j){
                i++; //i從左往右檢索
            }
            //代碼走到這里i停下,j也停下,然后交換i和j位置的元素
            int tem = arry[i];
            arry[i] = arry[j];
            arry[j] = tem;
        }
        //如果上面while條件不成立就會跳出這個循環,往下執行
        //如果這個條件不成立就說明 i和j相遇了
        //如果i和j相遇了,就交換基準數這個元素和相遇位置的元素
        //把相遇元素的值賦給基準數這個位置的元素
        arry[left] = arry[i];
        //把基準數賦給相遇位置的元素
        arry[i] = base;
        //基準數在這里遞歸就為了左邊的數比它小,右邊的數比它大
        //排序基準數的左邊
        quickSort(arry,left,i-1);
        //排右邊
        quickSort(arry,j+1,right);
    }
 
    public static void main(String[] args) {
        int[] arry = {11,81,71,61,10,42,33,24,99};
        System.out.println("arry排序前:"+Arrays.toString(arry));
        quickSort(arry,0, arry.length-1);
        System.out.println("arry排序后:"+Arrays.toString(arry));
    }

冒泡排序

  • 冒泡排序思想:給定一個數組,讓數組升序 (降序) 排序。

  • 將數組中相鄰元素從前往后依次進行比較,如果前一個元素比后一個元素大,則交換,一趟下來后最大元素就在數組的末尾。

  • 依次從上上述過程,直到數組中所有的元素都排列好。

public static void main(String[] args) {
        int[] arr = {18,13,50,15,4,17,18};
 
        System.out.println("arr的排序前:\n18  13  50  15  4  17  18 ");
 
        int temp  = 0 ;
        for(int i = 0 ;i< arr.length -1; i++){
            for(int j = 0; j<arr.length-1-i; j++){
                if(arr[j]>arr[j+1]){
                    //條件成立 交換位置
                    temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
 
        }
        System.out.println("arr排序后:");
 
        for(int i = 0; i<arr.length; i++){
 
            System.out.print(arr[i]+"\t");
        }
    }

“JAVA中數組怎么從小到大排序”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平遥县| 吐鲁番市| 镇雄县| 泉州市| 含山县| 苍山县| 东至县| 正镶白旗| 高清| 韶关市| 双鸭山市| 晋城| 汉源县| 阿拉善盟| 丁青县| 阜城县| 娄底市| 河津市| 商河县| 措美县| 绥德县| 集安市| 仙居县| 靖江市| 襄樊市| 孝昌县| 高唐县| 巩义市| 灵宝市| 梨树县| 青河县| 道孚县| 济南市| 左权县| 金川县| 天峨县| 广丰县| 阿克陶县| 芦溪县| 藁城市| 台山市|