Python 是一種簡單而強大的編程語言,通過它我們能夠輕松地實現各種算法與功能。本文將介紹如何使用 Python 實現全排列算法。
def permute(nums): ans = [] def dfs(l, r): if l == r: ans.append(nums[:]) return for i in range(l, r): nums[l], nums[i] = nums[i], nums[l] dfs(l + 1, r) nums[l], nums[i] = nums[i], nums[l] dfs(0, len(nums)) return ans # 調用該函數 print(permute([1, 2, 3]))
上述代碼實現的是遞歸版本的全排列算法。函數 permute 接受一個列表作為參數,返回該列表的全排列。算法的思路是使用遞歸方式對列表進行排序。
在實現過程中,我們定義了一個輔助函數 dfs。該函數接受兩個參數 l 和 r,代表當前排序的范圍。當 l=r 時表示已經遍歷完了整個列表,此時將其加入結果列表,并返回。否則,我們通過循環在當前區間內交換元素,使得列表中的每個元素都能到達首位位置,然后繼續調用 dfs 函數。
值得注意的是,在這個交換過程中,我們使用了 Python 獨有的語法,即在一個賦值語句中同時定義多個變量。
最后,我們通過調用 permute 函數,并傳入一個列表作為參數,即可獲得該列表的全排列。