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

java排序算法之_選擇排序(實例講解)

 更新時間:2017年09月13日 08:15:11   作者:ZincPool  
下面小編就為大家?guī)硪黄猨ava排序算法之_選擇排序(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

選擇排序是一種非常簡單的排序算法,從字面意思我們就可以知道,選擇就是從未排序好的序列中選擇出最?。ㄗ畲螅┑脑兀缓笈c第 i 趟排序的第 i-1(數(shù)組中下標從 0 開始) 個位置的元素進行交換,第 i 個元素之前的序列就是已經排序好的序列。整個排序過程只需要遍歷 n-1 趟便可排好,最后一個元素自動為最大(最?。┲?。

舉個小例子:

arr[] = {3,1,2,6,5,4}

第 1 趟排序: index = 0, min = 1,   交換后 -->  1,3,2,6,5,4

第 2 趟排序: index = 1, min = 2,   交換后 -->  1,2,3,6,5,4

第 3 趟排序: index = 2, min = 2,   交換后 -->  1,2,3,6,5,4

第 4 趟排序: index = 3, min = 5,   交換后 -->  1,2,3,4,5,6

第 5 趟排序: index = 4, min = 4,   交換后 -->  1,2,3,4,5,6

核心代碼如下:

/**
   * 選擇排序,從小到大排序
   */
  public static void selectsort(int[] arr) {
    int min = 0;  //記錄最小值的索引
    //遍歷 n-1 輪,最后一個數(shù)不用遍歷比較
    for(int i = 0; i < arr.length - 1; i++) {
      min = i;    //初始最小值為每輪循環(huán)的第一個數(shù)
      //遍歷初始最小值后的所有數(shù)
      for(int j = i + 1; j < arr.length; j++) {
        if(arr[min] > arr[j]) {    //判斷是否存在比最小值小的數(shù)
          min = j;        //記錄下標  
        }
      }
      if(min != i) {      //判斷最小值的索引是否等于初始最小值的索引
        int temp = arr[min];    //不是則進行最小值交換
        arr[min] = arr[i];
        arr[i] = temp;
      }
    }
  }

選擇排序算法是一種不穩(wěn)定的算法,它的時間復雜度為 O(n2),空間復雜度為 O(1).

以上這篇java排序算法之_選擇排序(實例講解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java序列化與反序列化

    Java序列化與反序列化

    這篇文章主要介紹了Java的序列化與反序列化,序列化把一個對象Java Object變?yōu)橐粋€二進制字節(jié)序列byte[];反序列化就是把一個二進制字節(jié)序列byte[]變?yōu)镴ava對象Java Object。感興趣的小伙伴可以參考閱讀
    2023-04-04
  • Flink入門級應用域名處理示例

    Flink入門級應用域名處理示例

    這篇文章主要介紹了一個比較簡單的入門級Flink應用,代碼很容易寫,主要用到的算子有FlatMap、KeyBy、Reduce,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • 淺談Java高并發(fā)解決方案以及高負載優(yōu)化方法

    淺談Java高并發(fā)解決方案以及高負載優(yōu)化方法

    這篇文章主要介紹了淺談Java高并發(fā)解決方案以及高負載優(yōu)化方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java分頁查詢--分頁顯示(實例講解)

    Java分頁查詢--分頁顯示(實例講解)

    下面小編就為大家?guī)硪黄狫ava分頁查詢--分頁顯示(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • spring boot容器啟動流程

    spring boot容器啟動流程

    spring cloud是基于spring boot快速搭建的,今天咱們就看看spring boot容器啟動流程,需要的朋友跟隨腳本之家小編一起學習吧
    2018-01-01
  • SpringBoot2.0整合WebSocket代碼實例

    SpringBoot2.0整合WebSocket代碼實例

    這篇文章主要介紹了SpringBoot2.0整合WebSocket代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • Spring boot實現(xiàn)一個簡單的ioc(2)

    Spring boot實現(xiàn)一個簡單的ioc(2)

    這篇文章主要為大家詳細介紹了Spring boot實現(xiàn)一個簡單ioc的第二篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Java在算法題中的輸入問題實例詳解

    Java在算法題中的輸入問題實例詳解

    在校招筆試中,有的時候我們要自己設計輸入輸出,所以下面這篇文章主要給大家介紹了關于Java在算法題中的輸入問題,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-02-02
  • Springboot整合Dozer實現(xiàn)深度復制的方法

    Springboot整合Dozer實現(xiàn)深度復制的方法

    Dozer是一種Java?Bean到Java?Bean的映射器,遞歸地將數(shù)據從一個對象復制到另一個對象,它是一個強大的,通用的,靈活的,可重用的和可配置的開源映射框架,本文給大家介紹Springboot整合Dozer的相關知識,感興趣的朋友跟隨小編一起看看吧
    2022-03-03
  • Java spring定時任務詳解

    Java spring定時任務詳解

    這篇文章主要為大家詳細介紹了Spring定時任務,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-10-10

最新評論

西贡区| 梨树县| 永清县| 庆元县| 宜兰市| 谢通门县| 九龙县| 修武县| 康保县| 清水县| 齐河县| 宁强县| 武鸣县| 遂昌县| 呼玛县| 万盛区| 隆尧县| 昌江| 台中县| 武安市| 昆山市| 扶沟县| 乌审旗| 思南县| 肥西县| 金塔县| 连南| 盐山县| 西安市| 榆社县| 冕宁县| 黑山县| 法库县| 曲沃县| 漳浦县| 梅河口市| 安远县| 孟州市| 平塘县| 安西县| 辉县市|