Algorithm Gossip:三色旗問題

【問題】假設有一條繩子,上面有紅白藍三種顏色的旗子,開始時旗子的顏色並沒有順序,現將其分類,排成藍白紅的順序,每次只能調換兩個旗子,問怎樣移動次數最少? 【算法分析】排列順序是b、w、r,定義三個指針: 1、b永遠指向第一個不是b的元素; 2、w是遍歷的指針,向前移動,並判斷指向元素,如果指向w則繼續前進,如果指向b則與b指向的元素交換,b、w各向前方移動一位,,如果是r則與r指向的元素交換,b、
相關文章
相關標籤/搜索