算法与数据结构(python):分治与归并排序
生活随笔
收集整理的這篇文章主要介紹了
算法与数据结构(python):分治与归并排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
提示:提示:專欄解鎖后,可以查看該專欄所有文章。
文章目錄
- 分治法
- 歸并排序
- 全文代碼
分治法
分治法(Divide and Conquer)
很多有用的算法結構上是遞歸的,為了解決一個特定問題,算法一次或者多次遞歸調用其自身以解決若干子問題。這些算法典型地遵循分治法的思想:將原問題分解為幾個規模較小但是類似于原問題的子問題,遞歸求解這些子問題,然后再合并這些問題的解來建立原問題的解。
分治法在每層遞歸時有三個步驟:
- 分解原問題為若干子問題,這些子問題是原問題的規模最小的實例
- 解決這些子問題,遞歸地求解這些子問題。當子問題的規模足夠小,就可以直接求解
- 合并這些子問題的解成原問題的解
歸并排序
現在我們就來看下歸并排序是是如何利用分治法解決問題的。
- 分解:將待排序的n個元素分成各包含n/2個元素的子序列
- 解決:使用歸并排序遞歸排序兩個子序列
- 合并:合并兩個已經排序的子序列以產生已排序的答案
考慮我們排序這個數組: [10,23,51,18,4.31,13,5], 我們遞歸地將數組進行分解
總結
以上是生活随笔為你收集整理的算法与数据结构(python):分治与归并排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 算法与数据结构(python):冒泡排序
- 下一篇: 小余学调度:学习记录(2022.4)