问答题 编写算法解决荷兰国旗问题,即将仅由红、白、蓝三种颜色的条块序列,在O(n)时间内按红、白、蓝顺序排好。例:给定色彩条块序列{蓝、白、红、白、蓝、红、白、白、红、蓝)则要求的结果为:{红、红、红、白、白、白、白、蓝、蓝、蓝}【东华大学2003五(15分)】【浙江大学2003七(10分)】
【正确答案】正确答案:像将元素值为正数、负数和零排序成前面都是负数,接着是零,最后是正数的排序,以及字母字符、数字字符和其他字符的排序等,都属于这类荷兰国旗问题。排序后,红、白和蓝色的元素个数分别为i一1,j~i,n-j+1。
【答案解析】