荷兰三色旗问题 Dutch national flag problem
算法详解见此网址: http://www.geeksforgeeks.org/archives/8133
我的C++语言实现
#include <iostream>void swap(int* a, int* b)
{*a = *a + *b;*b = *a - *b;*a = *a - *b;
};int main()
{int a[] = {1,0,0,0,1,1,0,0,2,2,2,1,1,0,0,0};int len = sizeof(a) / sizeof(int);std::cout << "Original list:\n";int i = 0;while(i < len){std::cout << a[i] << " ";i++; }std::cout << "\n";int left = 0;int mid = 0;int right = len - 1;while(mid < right){switch(a[mid]){case 0:swap(&a[left++], &a[mid]);break;case 1:mid++;break;case 2:swap(&a[mid], &a[right--]);break;}}std::cout << "Sorted list:\n";i = 0;while(i < len){std::cout << a[i] << " ";i++; }return 0;
}
荷兰三色旗问题 Dutch national flag problem相关推荐
- 荷兰国旗问题(Dutch National Flag Problem)
问题描述 给定数组中只有"1","2","3"三种数字,且个数不等 排序 最终结果的顺序为:所有的1在前,所有的2在中间,所有的3在后 如: ...
- 一首歌的时间看懂荷兰三色旗问题
给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列. 此题中,我们使用整数 0. 1 和 2 分别表示红色.白色和蓝色. ...
- 荷兰国旗问题的解决:额外空间复杂度O(1),时间复杂度O(N)
荷兰国旗问题:Dutch National Flag Problem a.给定一个序列arr,和一个数字num,把 > num的放在数组右边,把 <= num的放在数组左边 ...
- 笔试算法题(55):快速排序实现之三路划分, 三元中值法和插入排序处理小子文件...
议题:快速排序算法实现之三(三路划分遍历,解决与划分元素相等元素的问题) 分析: 算法原理:使用三路划分策略对数组进行划分(也就是荷兰国旗问题,dutch national flag problem) ...
- Three-way Partition
问题来源于the Dutch national flag problem,荷兰国旗问题? 把数组重新排序,比mid小的在前面,等于mid的在中间,比mid大的在最后,类似于快速排序中的partitio ...
- 你面试稳了!通关LeetCode刷题完整攻略,省时又高效
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 作者:穷码农 来源:https://zhuanlan.zhihu.com/p/10 ...
- 百亿题典之C++编程题面试题
原文地址:百亿题典之C++编程题面试题作者:百亿题典 1. 在linked list中找倒数第N个结点 2. 倒转linked list 3. 二叉树的结点有指向parent的指针,求最近公共祖先 4 ...
- 三分法 three-way partitioning
参考:http://blog.jobbole.com/105219/ 先考虑这样一个问题,给定红.白.蓝三种颜色的小球若干个,将其排成一列,使相同颜色的小球相邻,三种颜色先后顺序为红,白,蓝.这就是经 ...
- Partition算法
partition算法是一种分类算法,简单来说就把一个序列分成前后两部分,前一部分都是满足某一条件的元素,后一部分都是不满足该条件的元素.关于partition算法最著名的应用就是quick sort ...
最新文章
- windows下安装subversion
- nginx配置php项目后403,nginx配置引发的403问题解决办法
- MySQL Group Replication数据安全性保障
- java条件运算查询学生成绩_java条件运算符的应用实例之成绩分级
- 制造-销售”模式正在消亡,传统大型企业的上云之路要如何举步?
- 次数匹配(不需要在前面加“\”)
- 程序员面试金典——18.5单词最近的距离
- Leetcode 99. 恢复搜索二叉树
- Idea 里svn的导入使用
- 计算机二级python真题3和答案_计算机二级python真题:第3套综合应用题
- oracle 报错06502,求助!!ORA-06502错误
- linux max open,linux下修改max_user_processes和open_file的最大值
- 亭台六七座,八九十枝花——python正则表达
- HFSS - 同轴馈电矩形微带天线设计与仿真
- ROSROS2可视化仿真软件
- vfc格式linux,2021-03-17 在linux上将vcf文件转plink的格式bed,bim,fam
- Spring boot连接oracle数据库
- 独立样本t检验及其在SPSS中的实现
- 标梵分享微信官方账号运营推广思路
- 数据结构课程设计 运动会成绩统计