题目 :

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

代码:

#include <iostream>
using namespace std; /* run this program using the console pauser or add your own getch, system("pause") or input loop */
const int N = 20;void swap_ab (int *p, int *q){int temp = *p;*p = *p;*q = temp;
}void process (int a[], int n) {int *p, *q;p = q = a;while(p != a + n - 1){if (*(p+1) < * p){q = p + 1;while(*q < *(q-1)){swap_ab(q, q-1);--q;}}++p; }
}
int main(int argc, char** argv) {int a[N] = {0, 2, 1, 2, 0, 1, 0, 2, 2, 1, 0, 1, 2, 1, 1, 0, 0, 1, 1, 2};cout << "处理后的数组序列为: " << endl;process(a, N);for (int i = 0; i < N; i++) {cout << a[i] << " "; }cout << endl;return 0;
}

Java解法见及详细荷兰国旗算法问题解法见:https://www.jianshu.com/p/356604b8903f

【Algorithm】算法设计与分析(第二版)- 王红梅 - JAVA / C++实现:3.9 荷兰国旗问题相关推荐

  1. 算法设计与分析(python版)-作业一

    参考教材:算法设计与分析(Python版)         作者:王秋芬 1 . 容易 (4分)2 n=O(100n ^2) 错误 2 . 容易 (3分)10=θ(log10) 正确 3 . 容易 ( ...

  2. 算法设计与分析(python版)-作业三

    参考教材:算法设计与分析(Python版)         作者:王秋芬 1 . 普通 (5分)以下问题中,哪些问题的分治算法消耗的时间与输入序列无关.() A. 二分查找 B. 合并排序 C. 快速 ...

  3. 算法设计与分析——活动安排问题(Java)

    [问题]设有n个活动的集合E={1,2,-,n},其中每个活动都要求使用同一资源(如演讲会场),而在同一时间内只有一个活动能使用这一资源.每个活动  都有一个要求使用该资源的起始时间  和一个结束时间 ...

  4. 算法设计与分析——淘汰赛冠军问题(Java)

    [问题]假设有  个选手进行竞技淘汰赛,最后决出冠军的选手,请设计竞技淘汰比赛的过程. [想法]竞技淘汰比赛最自然的想法是将所有选手分成两部分,每部分决出胜者后,让这两个胜者进行比赛,再决出最后的冠军 ...

  5. 算法设计与分析第二章课后作业

    第二章 一.单选题 1 [单选题]给定字符集{a,b,c,d,e,f},若用定长码编码,至少需要几位二进制位() A.1位 B.2位 C.3位 D.4位 正确答案: C 我的答案:C 得分: 5.0分 ...

  6. 《算法设计与分析--第二章》

    第 2 章 递归与分治策略 2.1 递归的概念 2.2 分治法的基本思想 2.3 二分搜索技术 2.4 大整数的乘法 2.5 Strassen矩阵乘法 2.6 棋盘覆盖 2.7 合并排序 2.8 快速 ...

  7. 算法设计与分析第二章作业

    1. 2.时间复杂度: 划分子问题:O(1) 求解子问题:2T(2/n) 合并子问题:O(n) 时间复杂度为:T(n) = O(1) + 2T(2/n) + O(n) = O(nlogn) 3.心得与 ...

  8. 计算机算法设计与分析第五章思维导图知识点总结 ( 初稿 )

    复习链接 计算机算法设计与分析第一章思维导图 计算机算法设计与分析第二章思维导图&&知识点总结 计算机算法设计与分析第三章思维导图&&知识点总结 计算机算法设计与分析第 ...

  9. 王红梅《算法设计与分析(第3版)》部分课后实验代码

    [教材信息] 书名:算法设计与分析(第3版) ISBN:9787302594390 作者:王红梅 [递推法:杨辉三角形] #include <bits/stdc++.h> using na ...

最新文章

  1. python100行代码-python代码统计 100行
  2. Zephyr内核到1.5版本的改进
  3. 编译Android源码前的一个步骤
  4. php web开发应用教程,PHP-Web 应用程序开发:使用模板_PHP
  5. 每天一道LeetCode-----KMP算法查找子串,重新实现strStr()函数
  6. golang实现聊天室(三)
  7. HTML中关于图像和表格,链接等的知识
  8. 动态添加控件[可重复同一控件]
  9. 电子政务方向:We7.Cloud政府云门户
  10. Thymeleaf前后端传值 页面取值与js取值
  11. html meta标签
  12. matlab中的欧拉法,欧拉法函数
  13. nacos2.0 +nginx集群
  14. 使用Connectify让电脑变为WIFI
  15. 计算机科学美国大学专业,最新!2019年USNews美国大学计算机专业排名
  16. 新知实验室--腾讯云TRTC体验
  17. 解决手机提示TF卡受损需要格式化问题
  18. 移动流量转赠给好友_中国移动怎么才能转赠手机流量
  19. android阅读器里的 txt 文本处理分页功能的实现:
  20. 棋牌游戏网站分析——远航游戏中心

热门文章

  1. springboot个人目标计划时间管理系统
  2. H5 - 小程序Canvas海报小记
  3. 小桂闹钟 v2.30 是什么
  4. 王者荣耀手风琴效果实现
  5. 关于评分预测和TopN推荐的理解
  6. 天嵌IMX6Q/E9平台 TN92 GT911触摸屏移植Linux 4.1.15_1.2.0
  7. 当计算机运行死机时 可按,[求助]四川的学员看过来,有关四川历年考题?
  8. 计算机组装大赛主题,【院系动态】第九届计算机组装大赛
  9. 一个女人和四个“男人”的故事
  10. php table表单下载,GitHub - Zerolone/auto: 用php生成表格、表单 phh create form table