std::next_permutation 實作說明
std::next_permutation 演算法計算給定序列的下一個字典順序更大的排列。理解其實現對於理解其行為至關重要。演算法概述
該演算法從右到左迭代序列,搜尋最左邊的「上升部分」(即,小於其後繼的元素)。如果沒有找到上升符,則表示序列是降序排列,在這種情況下,它將反轉序列以獲得最小排列。 否則,演算法繼續尋找序列中向右的最小元素上升器(稱為“k”)。然後該元素與上行元素交換。最後,將上升部分右側的元素反轉以保持降序。變數角色
循環流程
循環迭代,直到 i 到達序列的開頭(開始)。在每次迭代中:範例
考慮序列{1, 2, 4, 3}.免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3