简答题

荷兰国旗问题。要求重新排列一个由字符R,W,B(R代表红色,W代表白色,B代表兰色,这都是荷兰国旗的颜色)构成的数组,使得所有的R都排在最前面,W排在其次,B排在最后。为荷兰国旗问题设计一个算法,其时间性能是O(n)。

正确答案

设立三个参数i、j、k,其中i以前的元素全部为红色;j表示当前元素;k以后的元素全部为蓝色。这样,就可以根据j的颜色,把其交换到序列的前部或后部。
具体算法如下:

答案解析

相似试题
  • 编一个程序,输入一个代表身份证号码的字符串,判断字符串长度(18)是否正确,还要判断输入的每个字符是否为数字。否则要求重新输入。

    简答题查看答案

  • 将一组文字分解成一个一个的文字后如果字符上包含嵌着如“8”、“R”嵌着部分的文字会怎么样()

    单选题查看答案

  • 将一组文字分解成一个的文字后,如果字符上包嵌套,如“8”,“R”嵌套部分的文字会怎样:()

    单选题查看答案

  • 将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列叫()。

    填空题查看答案

  • Fireworks中,如对一个对象应用了多种效果,()重新排列所选对象的效果应用顺序。

    单选题查看答案

  • 显示一个字符的DOS功能调用要求将字符放入()。

    单选题查看答案

  • 计算机中字符由一个()唯一标识。

    填空题查看答案

  • 输入由数字字符组成的字符串,将其转换成为一个整数。例如若输入字符串"3425",得到结果为整数值3425。

    简答题查看答案

  • 排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列。

    判断题查看答案