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

java數(shù)據(jù)結(jié)構(gòu)與算法之簡(jiǎn)單選擇排序詳解

 更新時(shí)間:2017年05月03日 11:08:45   作者:android小豬  
這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)與算法之簡(jiǎn)單選擇排序,結(jié)合實(shí)例形式分析了選擇排序的原理、實(shí)現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了java數(shù)據(jù)結(jié)構(gòu)與算法之簡(jiǎn)單選擇排序。分享給大家供大家參考,具體如下:

在前面的文章中已經(jīng)講述了交換類的排序算法,這節(jié)中開始說(shuō)說(shuō)選擇類的排序算法了,首先來(lái)看一下選擇排序的算法思想;

選擇排序的基本算法思想:

每一趟在 n-i+1 (i=1,2,3,……,n-1)個(gè)記錄中選取關(guān)鍵字最小的記錄作為有序序列中第i個(gè)記錄。

簡(jiǎn)單選擇排序:

設(shè)所排序序列的記錄個(gè)數(shù)為n。i取1,2,…,n-1,從所有n-i+1個(gè)記錄(Ri,Ri+1,…,Rn)中找出排序碼最小的記錄,與第i個(gè)記錄交換。執(zhí)行n-1趟 后就完成了記錄序列的排序。

算法實(shí)現(xiàn)代碼如下:

package exp_sort;
public class SimpleSelectSort {
  static int i;
  static int temp;
  public static void selectSort(int array[]) {
    for (i = 0; i < array.length; i++) {
      int k = i;  //記錄當(dāng)前位置
      for (int j = i + 1; j < array.length; j++) {
        if (array[j] < array[k]) {   //找出最小的數(shù),并用k指向最小數(shù)的位置
          k = j;
        }
      }
            //交換最小數(shù)array[k]與第i位上的數(shù)
      if (k != i) {
        temp = array[i];
        array[i] = array[k];
        array[k] = temp;
      }
    }
  }
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    int array[] = { 38, 62, 35, 77, 55, 14, 35, 98 };
    selectSort(array);
    for (int i = 0; i < array.length; i++) {
      System.out.print(array[i] + " ");
    }
    System.out.println("\n");
  }
}

算法分析:

在此排序過(guò)程中,需要移動(dòng)記錄的次數(shù)比較少。最好情況下,即待排序記錄初始狀態(tài)就已經(jīng)是正序排列了,則不需要移動(dòng)記錄;最壞情況下,即待排序記錄初始狀態(tài)是按照逆序排列的,則需要移動(dòng)次數(shù)最多是:3(n-1)。排序過(guò)程中需要進(jìn)行的比較次數(shù)與初始狀態(tài)下待排序的記錄序列的排列情況無(wú)關(guān)。當(dāng)i=1時(shí),需要進(jìn)行n-1次比較;當(dāng)i=n時(shí),共需要進(jìn)行的比較次數(shù)是:n(n-1)/2,即比較操作的時(shí)間復(fù)雜度是:O(n^2),進(jìn)行移動(dòng)操作的時(shí)間復(fù)雜度為O(n);該排序是不穩(wěn)定排序。

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Java8新特性之精簡(jiǎn)的JRE詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java8新特性之精簡(jiǎn)的JRE詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了Java8新特性之精簡(jiǎn)的JRE詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • PowerJob的ServerDiscoveryService工作流程源碼解讀

    PowerJob的ServerDiscoveryService工作流程源碼解讀

    這篇文章主要為大家介紹了PowerJob的ServerDiscoveryService工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Hibernate原理及應(yīng)用

    Hibernate原理及應(yīng)用

    本文主要介紹了Hibernate原理及應(yīng)用。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • 淺析java中next與nextLine用法對(duì)比

    淺析java中next與nextLine用法對(duì)比

    這篇文章主要介紹了java中next與nextLine用法區(qū)別以及實(shí)例分析了他們的區(qū)別,需要的朋友可以參考下
    2017-04-04
  • java跟蹤執(zhí)行的sql語(yǔ)句示例分享

    java跟蹤執(zhí)行的sql語(yǔ)句示例分享

    這篇文章主要介紹了java跟蹤執(zhí)行的sql語(yǔ)句示例分享,需要的朋友可以參考下
    2014-03-03
  • SpringBoot上傳和下載文件的原理解析

    SpringBoot上傳和下載文件的原理解析

    文件上傳的功能很常見,但是很多人并不清楚文件上傳后的具體原理,接下來(lái)通過(guò)本文給大家分享SpringBoot上傳和下載文件的原理解析,感興趣的朋友一起看看吧
    2021-07-07
  • RabbitMQ之死信隊(duì)列深入解析

    RabbitMQ之死信隊(duì)列深入解析

    這篇文章主要介紹了RabbitMQ之死信隊(duì)列深入解析,?死信,顧名思義就是無(wú)法被消費(fèi)的消息,字面意思可以這樣理解,一般來(lái)說(shuō),producer將消息投遞到 broker 或者直接到 queue 里了,consumer 從 queue 取消息進(jìn)行消費(fèi),需要的朋友可以參考下
    2023-09-09
  • Spring Security如何使用URL地址進(jìn)行權(quán)限控制

    Spring Security如何使用URL地址進(jìn)行權(quán)限控制

    這篇文章主要介紹了Spring Security如何使用URL地址進(jìn)行權(quán)限控制,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • IDEA2020.2.3中創(chuàng)建JavaWeb工程的完整步驟記錄

    IDEA2020.2.3中創(chuàng)建JavaWeb工程的完整步驟記錄

    這篇文章主要給大家介紹了關(guān)于IDEA2020.2.3中創(chuàng)建JavaWeb工程的完整步驟,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 在Windows系統(tǒng)下安裝Thrift的方法與使用講解

    在Windows系統(tǒng)下安裝Thrift的方法與使用講解

    今天小編就為大家分享一篇關(guān)于在Windows系統(tǒng)下安裝Thrift的方法與使用講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12

最新評(píng)論

周至县| 鄱阳县| 绍兴市| 庆城县| 镇安县| 清镇市| 绩溪县| 武川县| 台北市| 湘潭市| 伊春市| 北京市| 巨野县| 河东区| 卢龙县| 武邑县| 江门市| 天长市| 太仆寺旗| 汝南县| 明光市| 石河子市| 莆田市| 连云港市| 饶阳县| 大同县| 杭锦旗| 湟中县| 县级市| 南京市| 张掖市| 屏东市| 临颍县| 寿阳县| 连平县| 海阳市| 安福县| 兴安县| 边坝县| 和田市| 石泉县|