【問題】假設有一條繩子,上面有紅白藍三種顏色的旗子,開始時旗子的顏色並沒有順序,現將其分類,排成藍白紅的順序,每次只能調換兩個旗子,問怎樣移動次數最少?
【演算法分析】排列順序是b、w、r,定義三個指標:
1、b永遠指向第乙個不是b的元素;
2、w是遍歷的指標,向前移動,並判斷指向元素,如果指向w則繼續前進,如果指向b則與b指向的元素交換,b、w各向前方移動一位,,如果是r則與r指向的元素交換,b、r各向中間移動一位;
3、r從結尾開始永遠指向第乙個不是r的元素。
【**實現】
Algorithm Gossip 生命遊戲
file name arithmetic.c creat data 2015.1.31 author zy algorithm gossip 生命遊戲 生命遊戲 game of life 為1979年由英國數學家j.h.conway 所提出的,某一細胞的鄰居包括上,下,左,右,左上,左下,右上與右下...
Algorithm Gossip 費式數列
問題描述 fibonacci 為1200 年代的歐洲數學家 在他的著作中曾經提到 若有乙隻免子每個月生乙隻小免子 乙個月後小免子也開始生產。起初只有乙隻免子,乙個月後就有兩隻免子,二個月後有三隻免子,三個月後有五隻免子 小免子投入生產 如果不太理解這個例子的話,舉個圖就知道了,注意新生的小免子需乙個...
Algorithm Gossip 老鼠走迷宮(一)
file name arithmetic.c creat data 2015.1.31 author zy algorithm gossip 老鼠走迷宮 一 遞迴求解的基本題型 在二維陣列中2表示牆壁,1表示路線 include include int maze 7 7 int starti 1,s...