摘要: 我曾經(jīng)寫過一篇《有序全排列生成算法》,介紹了五種生成有序全排列的方法,在該文的末尾,我計劃再寫一篇姊妹篇《非有序全排列生成算法》,由于各種原因,一直遲遲未動筆,前幾天學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)“棧”的時候,碰到一個有趣的問題“列車出棧序列”,其中有一種解法需要用到非有序全排列,所以決定先寫好本文,再總結(jié)該問題。
生成非有序全排列的算法很多,有普通遞歸算法,循環(huán)移位法,鄰位對換法,需要中介數(shù)的遞增進(jìn)位排列生成算法,遞減進(jìn)位排列生成算法和循環(huán)左移排列生成算法等。
閱讀全文