最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA中數(shù)組從小到大排序的2種方法實(shí)例

 更新時(shí)間:2023年03月30日 15:19:54   作者:MangGuoGG  
JAVA中在運(yùn)用數(shù)組進(jìn)行排序功能時(shí)一般有多種解決方案,下面這篇文章主要給大家介紹了關(guān)于JAVA中數(shù)組從小到大排序的2種方法,文中都給出了詳細(xì)的實(shí)例代碼,需要的朋友可以參考下

快速排序

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

public static void quickSort(int[] arry,int left,int right){
        //運(yùn)行判斷,如果左邊索引大于右邊是不合法的,直接return結(jié)束此方法
        if(left>right){
            return;
        }
        //定義變量保存基準(zhǔn)數(shù)(第一次進(jìn)入方法最左邊的數(shù)字下標(biāo)為0)
        int base = arry[left];
        //定義變量i,指向最左邊
        int i = left;
        //定義j ,指向最右邊(第一次進(jìn)入方法最右邊數(shù)字下標(biāo)為數(shù)組的長度減1)
        int j = right;
        //當(dāng)i和j不相遇的時(shí)候,再循環(huán)中進(jìn)行檢索
        while(i!=j){
            //先由j從右往左檢索比基準(zhǔn)數(shù)小的,如果檢索到比基準(zhǔn)數(shù)小的就停下。
            //如果檢索到比基準(zhǔn)數(shù)大的或者相等的就停下
            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條件不成立就會(huì)跳出這個(gè)循環(huán),往下執(zhí)行
        //如果這個(gè)條件不成立就說明 i和j相遇了
        //如果i和j相遇了,就交換基準(zhǔn)數(shù)這個(gè)元素和相遇位置的元素
        //把相遇元素的值賦給基準(zhǔn)數(shù)這個(gè)位置的元素
        arry[left] = arry[i];
        //把基準(zhǔn)數(shù)賦給相遇位置的元素
        arry[i] = base;
        //基準(zhǔn)數(shù)在這里遞歸就為了左邊的數(shù)比它小,右邊的數(shù)比它大
        //排序基準(zhǔn)數(shù)的左邊
        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));
    }

冒泡排序

  • 冒泡排序思想:給定一個(gè)數(shù)組,讓數(shù)組升序 (降序) 排序。
  • 將數(shù)組中相鄰元素從前往后依次進(jìn)行比較,如果前一個(gè)元素比后一個(gè)元素大,則交換,一趟下來后最大元素就在數(shù)組的末尾。
  • 依次從上上述過程,直到數(shù)組中所有的元素都排列好。
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");
        }
    }

總結(jié)

到此這篇關(guān)于JAVA中數(shù)組從小到大排序的2種方法的文章就介紹到這了,更多相關(guān)JAVA數(shù)組從小到大排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot集成Swagger的方法(讓你擁有屬于自己的api管理器)

    springboot集成Swagger的方法(讓你擁有屬于自己的api管理器)

    在大型的項(xiàng)目中,如果你有非常多的接口需要統(tǒng)一管理,或者需要進(jìn)行接口測試,那么我們通常會(huì)在繁雜地api中找到需要進(jìn)行測試或者管理的接口,接下來通過本文給大家介紹springboot集成Swagger的方法讓你擁有屬于自己的api管理器,感興趣的朋友一起看看吧
    2021-11-11
  • IDEA代碼規(guī)范插件P3C+代碼注釋模板配置方法

    IDEA代碼規(guī)范插件P3C+代碼注釋模板配置方法

    這篇文章主要介紹了IDEA代碼規(guī)范插件P3C+代碼注釋模板配置方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • 一起因MySQL時(shí)間戳精度引發(fā)的血案分析

    一起因MySQL時(shí)間戳精度引發(fā)的血案分析

    這篇文章主要給大家介紹了一起因MySQL時(shí)間戳精度引發(fā)的血案的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Spring中BeanUtils.copyProperties的坑及解決

    Spring中BeanUtils.copyProperties的坑及解決

    這篇文章主要介紹了Spring中BeanUtils.copyProperties的坑及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 一文詳解Java中流程控制語句

    一文詳解Java中流程控制語句

    在一個(gè)程序執(zhí)行的過程中,各條語句的執(zhí)行順序?qū)Τ绦虻慕Y(jié)果是有直接影響的。也就是說,程序的流程對運(yùn)行結(jié)果有直接的影響。所以,我們必須清楚每條語句的執(zhí)行流程。本文就來通過一些示例帶大家詳細(xì)了解一下
    2022-10-10
  • Java 壓縮圖片并打包成ZIP文件的示例

    Java 壓縮圖片并打包成ZIP文件的示例

    這篇文章主要介紹了Java 壓縮圖片并打包成ZIP文件的示例,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-12-12
  • Java 將PPT幻燈片轉(zhuǎn)為HTML文件的實(shí)現(xiàn)思路

    Java 將PPT幻燈片轉(zhuǎn)為HTML文件的實(shí)現(xiàn)思路

    本文以Java程序代碼為例展示如何通過格式轉(zhuǎn)換的方式將PPT幻燈片文檔轉(zhuǎn)為HTML文件,本文通過實(shí)例代碼圖文相結(jié)合給大家分享實(shí)現(xiàn)思路,需要的朋友參考下吧
    2021-06-06
  • maven搭建java ee項(xiàng)目圖文教程

    maven搭建java ee項(xiàng)目圖文教程

    這篇文章主要為大家詳細(xì)介紹了maven搭建java ee項(xiàng)目圖文教程,感興趣的小伙伴們可以參考一下
    2016-04-04
  • Java中String類常用方法詳細(xì)匯總

    Java中String類常用方法詳細(xì)匯總

    Java中String類在所有項(xiàng)目開發(fā)里面一定會(huì)用到,因此String類提供了一系列的功能操作方法,下面這篇文章主要給大家介紹了關(guān)于Java中String類常用方法的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • springboot中如何使用自定義兩級(jí)緩存

    springboot中如何使用自定義兩級(jí)緩存

    本話題主要就是討論如何在springboot的基礎(chǔ)上,無縫集成ehcache和redis作為一二級(jí)緩存,并且實(shí)現(xiàn)緩存同步。
    2021-05-05

最新評論

西丰县| 宝清县| 营山县| 霞浦县| 天峻县| 海城市| 南溪县| 剑川县| 通化县| 安平县| 禄劝| 凤庆县| 林西县| 鄯善县| 富蕴县| 佛冈县| 临澧县| 潍坊市| 宝山区| 辽宁省| 克拉玛依市| 蓬安县| 武城县| 西丰县| 巫溪县| 鞍山市| 普宁市| 环江| 进贤县| 桃园市| 建阳市| 海南省| 环江| 桑植县| 永寿县| 莱阳市| 南投县| 白朗县| 青阳县| 广东省| 永德县|