<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          數(shù)據(jù)結(jié)構(gòu)與算法系列(三)—選擇排序

          共 1837字,需瀏覽 4分鐘

           ·

          2021-03-01 00:30


          點(diǎn)擊藍(lán)字關(guān)注我們



          af06315165f69d5445fac1c94f31223f.webp數(shù)據(jù)結(jié)構(gòu)與算法系列(三)—選擇排序

          前言

          大家好,牧碼心今天給大家推薦一篇數(shù)據(jù)結(jié)構(gòu)與算法系列(三)—選擇排序的文章,希望對(duì)你有所幫助。大綱如下:

          • 選擇排序基本介紹

          • 選擇排序圖文說明

          • 選擇排序時(shí)空復(fù)雜度和穩(wěn)定性

          • 選擇排序具體實(shí)現(xiàn)

          選擇排序基本介紹

          選擇排序 是一種較簡(jiǎn)單的排序算法,排序過程類似于隊(duì)伍排隊(duì),每次選出相對(duì)最高或最小的同學(xué)排列。相比于冒泡排序省去了每輪交換多次的開銷。其基本思想是:首先在未排序的數(shù)列中找到最小(最大)元素,然后將其存放到數(shù)列的起始位置;接著,再?gòu)氖S辔磁判虻脑刂欣^續(xù)尋找最小(最大)元素,然后放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

          選擇排序圖文說明

          • 下面以數(shù)列{20,40,30,10,60,50}為例,演示選擇排序過程

            0a77674abd36ed13a09b09c66760ed7f.webp選擇排序過程


            排序流程說明:

            • 第1趟:i=0.找出a[1…5]中的最小值a[3]=10,然后將a[0]和a[3]互換。數(shù)列變化:

              • 20,40,30,10,60,50->10,40,30,20,60,50

            • 第2趟:i=1.找出a[2…5]中的最小值a[3]=20,然后將a[1]和a[3]互換。數(shù)列變化:

              • 10,40,30,20,60,50->10,20,30,40,60,50

            • 第3趟:i=2.找出a[3…5]中的最小值,由于該最小值大于a[2],該趟不做任何處理。

            • 第4趟:i=3.找出a[4…5]中的最小值,由于該最小值大于a[3],該趟不做任何處理。

            • 第5趟:i=4.交換a[4]和a[5]的數(shù)據(jù),數(shù)列變化:

              • 10,20,30,40,60,50->10,20,30,40,50,60

          選擇排序時(shí)空復(fù)雜度和穩(wěn)定性

          時(shí)間復(fù)雜度空間復(fù)雜度穩(wěn)定性
          O(n^2)O(1)不穩(wěn)定
          • 說明

            • 時(shí)間復(fù)雜度:選擇排序每一輪需要選出最小值min,在交互到最左邊的時(shí)間復(fù)雜度為O(n),共需要進(jìn)行n-1輪。所以總的時(shí)間復(fù)雜度為O(n^2) ;

            • 空間復(fù)雜度 :選擇排序是原地排序,沒有產(chǎn)生額外的空間,則為O(1) ;

            • 穩(wěn)定性 :選擇排序是不穩(wěn)定的,比如被排序的序列存在多個(gè)相同的的元素時(shí),該排序會(huì)打亂各元素原有的相對(duì)順序。

          選擇排序?qū)崿F(xiàn)

          • 選擇排序(java版)

           1/*
          2?????*?@Author:greekw
          3?????*?@Desc:?選擇排序,類比站隊(duì)
          4?????*?@Date?0:04?2020/7/22
          5?????*?@Param?[array]
          6?????*?@return?void
          7????**/

          8????public?static?void?selectSort(int[]?array){
          9????????for?(int?i?=?0;?i?<?array.length?;?i++)?{
          10????????????//?設(shè)置初始的最小位置
          11????????????int?minIndex?=?i;
          12
          13????????????//?找出最小元素的位置
          14????????????for?(int?j?=?i;?j?<?array.length;?j++)?{
          15
          16????????????????minIndex?=?(array[j]?<?array[minIndex])???j?:?minIndex;
          17????????????}
          18
          19????????????//?交換元素,排序
          20????????????int?temp?=?array[i];
          21????????????array[i]?=?array[minIndex];
          22????????????array[minIndex]?=?temp;
          23????????}
          24????}
          25?????//?測(cè)試用例
          26????public?static?void?main(String[]?args)?{
          27????????int[]?selectArray=?new?int[]{20,40,30,10,60,50};
          28????????selectSort(selectArray);
          29????????System.out.println(Arrays.toString(selectArray));
          30????}




          往期回顧


          THE

          END

          長(zhǎng)按二維碼關(guān)注,一起學(xué)習(xí)、思考、成長(zhǎng)





          掃碼關(guān)注我們

          微信號(hào) : lx_three



          瀏覽 24
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  精品视频一区二区 | 日本a影院 | 视频亚洲无码 | 操女人逼网站 | 神马午夜电影一区二区 |