#include "stdio.h" #include "stdlib.h" #include "string.h" void swap(int a,int b,char *l); void sort(char *l); void main() { char ColorLine[]={'r','w','b','b','w','r','b','b','\0'}; char *c; printf("The orginal order:\n"); for (c=ColorLine;*c!='\0';c++) { printf("%c ",*c); } printf("\n"); sort(ColorLine); printf("The ordered order:\n"); for (c=ColorLine;*c!='\0';c++) { printf("%c ",*c); } } void swap(int a,int b,char *l) { char t; t=l[a]; l[a]=l[b]; l[b]=t; } void sort(char *l) { int wFlag=0; int bFlag=0; int rFlag=strlen(l)-1; while (wFlag<=rFlag) { if (l[wFlag]=='w') { wFlag++; } else if (l[wFlag]=='b') { swap(bFlag,wFlag,l); bFlag++; wFlag++; } else { while(wFlag < rFlag && l[rFlag]=='r') rFlag--; swap(wFlag,rFlag,l); rFlag--; } } }
原文链接: https://www.cnblogs.com/legendmaner/archive/2011/09/24/2977037.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/33057
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!