20170927_快排应用_荷兰国旗问题

来源:互联网 发布:每天目标的软件 编辑:程序博客网 时间:2024/05/02 05:01

20170927_快排应用_荷兰国旗问题


荷兰国旗问题:
有一堆乱序小球,颜色分别是红色、白色、蓝色。请将它们按照红白蓝进行排序。
假设:红=0,白=1,蓝=2

//20170927_快排应用_荷兰国旗问题/*有一堆乱序小球,颜色分别是红色、白色、蓝色。请将它们按照红白蓝进行排序。假设:红=0,白=1,蓝=2*/#include<iostream>#include<vector>#include<string>#include<algorithm>#include<numeric>#include<functional>using namespace std;void Partition(int r[], int begin, int end){int current=begin;int temp=0;while(current<=end){if(r[current]==0){temp=r[current];r[current]=r[begin];r[begin]=temp;++begin;++current;}if(r[current]==1)++current;if(r[current]==2){temp=r[current];r[current]=r[end];r[end]=temp;--end;}}}int main(void){int r[]={0,1,2,1,1,2,0,2,1,0};Partition(r,0,9);int i=0;while(i<=9)cout<<r[i++]<<",";system("pause");return 0;}



原创粉丝点击