Re: [問題] 簡單的排列

作者: pttworld (批踢踢世界)   2016-09-20 01:01:28
提供此問題遞迴處理的觀念。
人類遇到a + b + c的情況只能先處理兩個,再進行結果與第三個的這兩個。
準備swap函式。
關鍵在迴圈分群切點,將數列分成兩堆。
基礎
1 2
2 1
遞迴
星號為迴圈迭代切點位置
1 * 2 3
2 3 1
其中
2 3又可
2 3
3 2
迭代
1 2 * 3
3 1 2
其中
1 2又可
1 2
2 1
如果陣列存在重複數字,使用索引。
※ 引述《mikemagic88 (Mikemagic88)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: Dev C++
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
: 應該沒有吧
: 問題(Question):
: 使用者輸入數字後, 輸出所有可能之排列.
: 餵入的資料(Input):
: 假設是3好了
: 預期的正確結果(Expected Output):
: [1] 1, 2, 3
: [2] 1, 3, 2
: [3] 2, 1, 3
: [4] 2, 3, 1
: [5] 3, 1, 2
: [6] 3, 2, 1
: 錯誤結果(Wrong Output):
: 無
: 程式碼(Code):(請善用置底文網頁, 記得排版)
: http://ideone.com/7iBiyM
: 補充說明(Supplement):
: 分為 "不使用遞迴" 和 "使用遞迴" 兩種狀況
: 我先不用遞迴寫
作者: cosrabbit (Putz)   2016-09-22 21:08:00
人真好欸
作者: f88643 (蛤時愈皮險惡評語言語)   2016-09-22 21:25:00
要怎麼把數字帶到*那邊 索引又該怎麼用勒

Links booklink

Contact Us: admin [ a t ] ucptt.com