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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

图综合练习--拓扑排序_03 数据结构与算法 - 排序

發布時間:2025/4/5 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图综合练习--拓扑排序_03 数据结构与算法 - 排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 1. 冒泡排序 Bubble Sort
    • 基本思想
      • 給定一個數組,這些元素將通過相互之間的比較,按照大小順序一個個地像氣泡一樣浮出水面
    • 實現
      • 每一輪,從頭部開始,每兩個元素比較大小進行交換,直到這一輪中最大或最小元素被放置到尾部,不斷重復,直到所有元素都排好位置
    • 代碼示例

    • 時間復雜度
      • O(n2)
      • 穩定的排序算法
        • 指如果數組里兩個相等的數,那么排序前后這兩個相等的數的相對位置保持不變
  • 2. 插入排序 Insertion Sort
    • 基本思想
      • 不斷地將尚未排好序的數,插入到已經排好序的部分
    • 特點
      • 冒泡排序中,經過每一輪的排序處理后,數組后端的數是排好序的
      • 插入排序中,經過每一輪的排序處理后,數組前段的數是排好序的
    • 解題思路
      • 將數組分成左右兩個部分,左邊是已經排好序的部分,右邊是沒排序的部分
      • 剛開始時,左邊只有第一個元素
      • 接下來,對右邊的元素一個個進行處理,將他們放到左邊
    • 代碼示例

    • 時間復雜度
      • O(n2)
      • 穩定的排序算法
    • 練習
      • LC147:對一個鏈表進行插入排序
  • 3. 歸并排序 Merge Sort
    • 基本思想
      • 分治
      • 把復雜的問題分成兩個或多個相同或相似的子問題,
      • 然后把子問題分成更小的子問題,直到子問題可以簡單的直接求解,
      • 圓問題的解,就是子問題解的合并
    • 實現
      • 先把數組從中間劃分成兩個子數組,一直遞歸地把子數組劃分成更小的子數組,直到子數組里只有一個元素,才開始排序
      • 排序方法:按照大小順序合并兩個元素,接著依次按照遞歸的返回順序,不斷地合并排好序的子數組,直到最后把整個數組的順序排好
    • 代碼示例

    • 時間復雜度
      • O(nlogn)
      • 穩定的排序算法
  • 4. 快速排序 Quick Sort
    • 基本思想
      • 分治
    • 實現
      • 從原始的數組,選取一基準值,篩選成較小和較大的兩個子數組,然后從兩個子數組不斷地挑選基準值,進行遞歸排序,當所有的子數組的元素個數都為 1 時結束
    • 代碼示例

    • 復雜度
      • 時間 最優:O(nlogn) 最壞:O(n2)
      • 空間 O(logn)
    • 練習
      • LC 215:給定一個尚未排好序的數組,要求找出第 k 大的數
        • 解1 直接將數組進行排序,然后得出結果
        • 解2 快速排序:每次隨機選取一個基準值,將數組分成較小的一半和較大的一半,然后檢查這個基準值最后所在的下標是不是 k,算法復雜度只需要 O(n)
    • 5. 拓撲排序 Topological Sort
    • 前提
      • 1. 圖必須是有向圖
      • 2. 圖里面沒有環
    • 用途
      • 用來理清具有依賴關系的任務
    • 實現
      • 1. 將問題用一個有向無環圖進行抽象表達,定義出哪些是圖頂點,頂點之間如何互相關聯
      • 2. 可以利用廣度優先搜索 或 深度優先搜索 進行拓撲排序
    • 實現
      • 選擇一個沒有前驅(入度為 0)的頂點,輸出,然后刪除該頂點及相關的有向邊
      • 重復上述操作
    • 代碼示例

    • 時間復雜度
      • O(n)

總結

以上是生活随笔為你收集整理的图综合练习--拓扑排序_03 数据结构与算法 - 排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。