最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

算法解析 Next Permutation 下一個排列

2023-02-18 19:58 作者:EKVTGwNJiElK  | 我要投稿

實現(xiàn)的功能

它能計算比某一個排列大的所有排列中的最小排列。這里的大小指的是字典序,即把排列看成是?n 進(jìn)制的 n 位數(shù)進(jìn)行比較。如果 s%3D%5B4%2C3%2C2%2C1%2C5%2C6%5D,將此算法應(yīng)用于?s 將得到?%5B4%2C3%2C2%2C1%2C5%2C6%5D

代碼分析

這是 glibc 位于頭文件 bits/stl_algo.h 對函數(shù)?std::next_permutation?的實現(xiàn),這個函數(shù)能對一個序列應(yīng)用此算法。

這一大段代碼用 OIer 的語氣寫,大概就是這樣。其中?swap?交換兩個變量的值;reverse?反轉(zhuǎn)排列,兩個參數(shù)分別為起點下標(biāo)和終點下標(biāo)加一。

算法分析

從后往前找到第一個(從前往后最后一個)滿足?a_i%3Ca_%7Bi%2B1%7D?的?i,此時第?i?個數(shù)后面的數(shù),組成的子序列遞減,是最大的排列了。所以要想得到更大的排列必須修改?a_i。接著向后遍歷?a_i?后比它大的最小的數(shù)?i%2B1%5Csim%20n,把?a_i?和?a_j?交換,接著把第 i%2B1%5Csim%20n?的數(shù)按從小到大排序就好。因為此時要排序的數(shù)已經(jīng)遞減了,所以能用?reverse?在線性時間內(nèi)完成這里的排序。


算法解析 Next Permutation 下一個排列的評論 (共 條)

分享到微博請遵守國家法律
体育| 驻马店市| 交口县| 松阳县| 射阳县| 延吉市| 屏山县| 遂平县| 聂拉木县| 钟山县| 吴堡县| 孙吴县| 弥勒县| 常熟市| 全南县| 曲松县| 合阳县| 加查县| 长泰县| 石河子市| 商城县| 扎囊县| 辉南县| 仪陇县| 手游| 宣武区| 五大连池市| 田林县| 玛曲县| 阳新县| 涞源县| 卢氏县| 沾化县| 安庆市| 德阳市| 漯河市| 安新县| 蒲城县| 昔阳县| 昌乐县| 勐海县|