摘要:
荷兰旗问题是三色排序,即某一组数据,元素的值只能为a,b ,c。把这组数据按照a, b, c的顺序排序。
本文介绍了一种时间复杂度为O(n),空间复杂度O(1)的算法。
1. 问题描述
某盒子中有n个球,每个球的颜色可以是红、蓝、白,现在要求把球按照红、蓝、白的顺序摆放。这个问题叫做荷兰旗问题(荷兰旗由红、蓝、白三色组成)。
对问题的抽象:
一数列Data中含有n个元素:
Data = {A1, A2, A3, A4........, An}
Ai 属于{a, b, c}
要求:把Data按照a, b, c的顺序排列
Data = {a, a, ... b, b, b, ...., c,c,c...}
2. 问题分析
//