荷兰国旗问题。要求重新排列一个由字符R,W,B(R代表红色,W代表白色,B代表兰色,这都是荷兰国旗的颜色)构成的数组,使得所有的R都排在最前面,W排在其次,B排在最后。为荷兰国旗问题设计一个算法,其时间性能是O(n)。
正确答案:设立三个参数i、j、k,其中i以前的元素全部为红色;j表示当前元素;k以后的元素全部为蓝色。这样,就可以根据j的颜色,把其交换到序列的前部或后部。
具体算法如下:
具体算法如下:
答案解析:有
微信扫一扫手机做题
荷兰国旗问题。要求重新排列一个由字符R,W,B(R代表红色,W代表白色,B代表兰色,这都是荷兰国旗的颜色)构成的数组,使得所有的R都排在最前面,W排在其次,B排在最后。为荷兰国旗问题设计一个算法,其时间性能是O(n)。
微信扫一扫手机做题