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

Java排序算法中的選擇排序算法實現(xiàn)

 更新時間:2023年12月12日 09:03:44   作者:warybee  
這篇文章主要介紹了Java排序算法中的選擇排序算法實現(xiàn),選擇排序算法的實現(xiàn)思路類似插入排序,分已排序區(qū)間和未排序區(qū)間,選擇排序每次會從未排序區(qū)間中找到最小(大)的元素,將其放到已排序區(qū)間的末尾,需要的朋友可以參考下

Java選擇排序算法

1、排序原理

選擇排序算法的實現(xiàn)思路類似插入排序,分已排序區(qū)間和未排序區(qū)間。選擇排序每次會從未排序區(qū)間中找到最小(大)的元素,將其放到已排序區(qū)間的末尾。

排序原理的基本思想是:

  • 第一次從 arr[0]~arr[n-1]中選取最小值,與 arr[0]交換;
  • 第二次從 arr[1]~arr[n-1]中選取最小值, 與 arr[1]交換;
  • 第三次從 arr[2]~arr[n-1]中選取最小值, 與 arr[2]交換, …,
  • 第 i 次從 arr[i-1]~arr[n-1]中選取最小值, 與 arr[i-1]交換, …,
  • 第 n-1 次從 arr[n-2]~arr[n-1]中選取最小值,與 arr[n-2]交換, 總共通過 n-1 次, 得到一個按排序碼從小到大排列的有序序列。

通過一張動態(tài)圖,來直觀感受一下,要排序的數(shù)組為:[4,5,6,1,3,2],正序排序

在這里插入圖片描述

偽代碼實現(xiàn):

循環(huán)(元素個數(shù)-1)次

把第一個沒有排序過的元素設(shè)置為最小值

循環(huán)(每個沒有排序過的元素)

如果元素 < 現(xiàn)在的最小值

將此元素設(shè)置成為新的最小值

將最小值和第一個沒有排序過的位置交換

2、代碼實現(xiàn)

/**
     * 選擇排序
     * @param array
     * @return
     */
    public static int[] selectionSort(int[] array) {
        if (array.length == 0)
            return array;
        for (int i = 0; i < array.length; i++) {
            //初始最小值默認(rèn)為第一個數(shù)據(jù)
            int minIndex = i;
            for (int j = i+1; j < array.length; j++) {
                //找到最小的數(shù)
                if (array[j] < array[minIndex])
                    minIndex = j; //將最小數(shù)的索引保存
            }
            int temp = array[minIndex];
            array[minIndex] = array[i];
            array[i] = temp;
        }
        return array;
    }

3、算法分析

3.1、時間復(fù)雜度

  • 最好情況:T(n)=O(n^2)
  • 最壞情況:T(n)=O(n^2)
  • 平均情況:T(n)=O(n^2)

3.2、是否穩(wěn)定

選擇排序是一種不穩(wěn)定的排序算法。選擇排序每次都要找剩余未排序元素中的最小值,并和前面的元素交換位置,這樣破壞了穩(wěn)定性。

到此這篇關(guān)于Java排序算法中的選擇排序算法實現(xiàn)的文章就介紹到這了,更多相關(guān)Java選擇排序算法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java工具jsch.jar實現(xiàn)上傳下載

    Java工具jsch.jar實現(xiàn)上傳下載

    這篇文章主要為大家詳細(xì)介紹了Java操作ftp的一款工具,利用jsch.jar針對sftp的上傳下載工具類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Spring?Boot2升級到3的詳細(xì)步驟記錄

    Spring?Boot2升級到3的詳細(xì)步驟記錄

    從Spring Boot 2到Spring Boot 3的升級是一次全面而深刻的變革,它不僅帶來了技術(shù)棧的更新和新特性的引入,還顯著提升了應(yīng)用的性能和開發(fā)效率,這篇文章主要介紹了Spring?Boot2升級到3的詳細(xì)步驟,需要的朋友可以參考下
    2025-08-08
  • javaWeb項目部署到阿里云服務(wù)Linux系統(tǒng)的詳細(xì)步驟

    javaWeb項目部署到阿里云服務(wù)Linux系統(tǒng)的詳細(xì)步驟

    這篇文章主要介紹了javaWeb項目部署到阿里云服務(wù)Linux系統(tǒng),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Java底層基于二叉搜索樹實現(xiàn)集合和映射/集合Set功能詳解

    Java底層基于二叉搜索樹實現(xiàn)集合和映射/集合Set功能詳解

    這篇文章主要介紹了Java底層基于二叉搜索樹實現(xiàn)集合和映射/集合Set功能,結(jié)合實例形式分析了Java使用二叉搜索樹實現(xiàn)集合和映射相關(guān)操作技巧,需要的朋友可以參考下
    2020-03-03
  • SpringBoot報錯Invalid?bound?statement?(not?found)問題排查和解決方案

    SpringBoot報錯Invalid?bound?statement?(not?found)問題排查和解決方案

    這篇文章主要介紹了SpringBoot報錯Invalid?bound?statement?(not?found)問題排查和解決方案,文中通過圖文結(jié)合的方式講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-03-03
  • Spring Boot中使用Redis和Lua腳本實現(xiàn)延時隊列的方案

    Spring Boot中使用Redis和Lua腳本實現(xiàn)延時隊列的方案

    通過使用Redis和Lua腳本,可以在Spring Boot環(huán)境中實現(xiàn)一個高效且可靠的延時隊列系統(tǒng),這種方法利用了Redis的有序集合數(shù)據(jù)結(jié)構(gòu)和Lua腳本的原子性操作來確保任務(wù)的正確性和一致性,這篇文章主要介紹了Spring Boot中使用Redis和Lua腳本實現(xiàn)延時隊列,需要的朋友可以參考下
    2024-05-05
  • java利用pdfbox+poi往pdf插入數(shù)據(jù)

    java利用pdfbox+poi往pdf插入數(shù)據(jù)

    這篇文章主要給大家介紹了關(guān)于java利用pdfbox+poi如何往pdf插入數(shù)據(jù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-02-02
  • java線性表的存儲結(jié)構(gòu)及其代碼實現(xiàn)

    java線性表的存儲結(jié)構(gòu)及其代碼實現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了Java數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)筆記第一篇,線性表的存儲結(jié)構(gòu)及其代碼實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 關(guān)于FileChannel的transferFrom()方法的使用及說明

    關(guān)于FileChannel的transferFrom()方法的使用及說明

    這篇文章主要介紹了關(guān)于FileChannel的transferFrom()方法的使用及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • Java使用PDFBox提取PDF文本并統(tǒng)計關(guān)鍵詞出現(xiàn)的次數(shù)

    Java使用PDFBox提取PDF文本并統(tǒng)計關(guān)鍵詞出現(xiàn)的次數(shù)

    這篇文章主要介紹了Apache PDFBox庫的基本知識,包括如何使用PDDocument加載PDF文件、PDFTextStripper提取文本以及如何進行詞頻統(tǒng)計,還提供了在線URL的處理方法,需要的朋友可以參考下
    2025-05-05

最新評論

韶关市| 宣化县| 旺苍县| 尉犁县| 孝感市| 新丰县| 普陀区| 康马县| 寿阳县| 岳阳县| 施甸县| 天水市| 新乡市| 禄丰县| 长阳| 锦州市| 滨州市| 昭苏县| 枣强县| 南皮县| 通河县| 华池县| 且末县| 盐津县| 望城县| 海盐县| 女性| 宜兰市| 天等县| 舒兰市| 平安县| 周宁县| 酒泉市| 德庆县| 临湘市| 精河县| 遂昌县| 九龙坡区| 福建省| 滦南县| 如东县|