日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

算法与数据结构(选择排序)

發(fā)布時間:2025/3/21 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法与数据结构(选择排序) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

選擇排序 Select Sort

從待排序序列中選出最小(或最大)元素,放入新建的有序序列中,并將其從原無序序列移除。不斷重復(fù)直到無序序列最終沒有元素剩余


選擇排序規(guī)則:

  • 總共要進行 n-1 次循環(huán)
  • 每一輪循環(huán)中又嵌套了一層循環(huán)–從第一個元素遍歷到最后一個,找出最小元素

  • 實現(xiàn):

    從無序序列中找到最小元素,將其和無序序列首位的元素交換(此時首位元素屬于有序序列,剩下的元素屬于無序序列)

    重復(fù)步驟,直到無序序列沒有元素剩余

    public static void selectSort(int[] arr) {int min;int minIndex;int temp;for (int i=0; i<arr.length-1; i++) {// 將新無序序列的第一位設(shè)為最小值min = arr[i];minIndex = i;// 找出最小值for (int j=i+1; j<arr.length; j++) {if (min > arr[j]) {min = arr[j];minIndex = j;}}// 將最小值和隊首元素交換if (minIndex != i) {temp = arr[i];arr[i] = min;arr[minIndex] = temp;}}// 打印for(int i=0; i< arr.length; i++) {System.out.println(arr[i]);} }

    時間復(fù)雜度分析:

    平均時間復(fù)雜度:T(n)=n?1+n?2+?+2+1=n(n?1)2=O(n2)T(n) = n-1 + n-2 + \dots + 2 + 1 = \frac{n(n-1)}{2} = O(n^2)T(n)=n?1+n?2+?+2+1=2n(n?1)?=O(n2)

    最優(yōu)時間復(fù)雜度:列表正序,依然需要遍歷列表全部比較,所以還是 O(n2)O(n^2)O(n2

    最壞時間復(fù)雜度:列表倒序,需要遍歷列表全部比較,因此為 O(n2)O(n^2)O(n2)

    空間復(fù)雜度:

    由于只用到了常數(shù)個臨時變量,且這個常數(shù)和序列大小無關(guān),所以空間復(fù)雜度為 O(1)O(1)O(1)

    穩(wěn)定性:

    在選擇排序的過程中,可能出現(xiàn)等值元素順序交換的情況,例如:

    列表 [ 5, 3, 4, 6, 5, 2],在排序時會將 2 和 第一個 5 交換,此時兩個 5 的順序改變

    所以選擇排序是不穩(wěn)定的


    相關(guān)章節(jié)
    第一節(jié) 簡述
    第二節(jié) 稀疏數(shù)組 Sparse Array
    第三節(jié) 隊列 Queue
    第四節(jié) 單鏈表 Single Linked List
    第五節(jié) 雙向鏈表 Double Linked List
    第六節(jié) 單向環(huán)形鏈表 Circular Linked List
    第七節(jié) 棧 Stack
    第八節(jié) 遞歸 Recursion
    第九節(jié) 時間復(fù)雜度 Time Complexity
    第十節(jié) 排序算法 Sort Algorithm
    第十一節(jié) 冒泡排序 Bubble Sort
    第十二節(jié) 選擇排序 Select Sort
    第十三節(jié) 插入排序 Insertion Sort
    第十四節(jié) 冒泡排序,選擇排序和插入排序的總結(jié)
    第十五節(jié) 希爾排序 Shell’s Sort
    第十六節(jié) 快速排序 Quick Sort
    第十七節(jié) 歸并排序 Merge Sort

    總結(jié)

    以上是生活随笔為你收集整理的算法与数据结构(选择排序)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。