有兴趣看看这个三色旗算法

MFCANDPAI 2012-07-12 02:02:13
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BLUE 'b'
#define WHITE 'w'
#define RED 'r'
#define SWAP(x, y) { char temp; \
temp = color[x]; \
color[x] = color[y]; \
color[y] = temp; }
int main() {
char color[] = {'r', 'w', 'b', 'w', 'w',
'b', 'r', 'b', 'w', 'r', '\0'};
int wFlag = 0;
int bFlag = 0;
int rFlag = strlen(color) - 1;
int i;
for(i = 0; i < strlen(color); i++)
printf("%c ", color[i]);
printf("\n");
while(wFlag <= rFlag) {
if(color[wFlag] == WHITE)
wFlag++;
else if(color[wFlag] == BLUE) {
SWAP(bFlag, wFlag);
bFlag++; wFlag++;
}
else {
while(wFlag < rFlag && color[rFlag] == RED)
rFlag--;
SWAP(rFlag, wFlag);
rFlag--;
}
}
for(i = 0; i < strlen(color); i++)
printf("%c ", color[i]);
printf("\n");
}
...全文
166 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
夏天__ 2012-07-13
  • 打赏
  • 举报
回复
代码没注释,写的乱七八糟的,谁愿意看啊。
MFCANDPAI 2012-07-13
  • 打赏
  • 举报
回复
怎么没有高手解释呢,CSDN好凄凉
MFCANDPAI 2012-07-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
这个是什么东东?三色旗是你封的?
[/Quote]
怎么是我封的,我也是人云亦云
shen_wei 2012-07-12
  • 打赏
  • 举报
回复
算法要的是效率,解题的技巧!!
酱油党 2012-07-12
  • 打赏
  • 举报
回复
这个是什么东东?三色旗是你封的?
MFCANDPAI 2012-07-12
  • 打赏
  • 举报
回复
高手们是怎么看算法题的

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧