オランダ国旗問題
オランダ国旗アルゴリズム
Dutch National Flag algorithm
配列内に3種類の要素(例えば0、1、2)が存在する場合に、それらを効率的に昇順または降順に並べ替えるためのアルゴリズム
考案者はダイクストラ法で有名なエドガー・ダイクストラらしい
LeetCodeで基本問題として扱われていて知った
LeetCode.iconhttps://leetcode.com/explore/learn/card/sorting/694/comparison-based-sorts/4483/
code:sort_colors.go
func sortColors(nums []int) {
low, mid := 0, 0
high := len(nums)-1
for mid <= high {
switch numsmid {
case 0:
numslow, numsmid = numsmid, numslow
low++
mid++
case 1:
mid++
case 2:
numsmid, numshigh = numshigh, numsmid
high--
}
}
}