| 颖 的个人资料milkwayhong日志 | 帮助 |
|
11月19日 我认为的一个不错的小程序 大学毕业时,同学到东软找工作的时候就是问的这个题,有些印象。后来在学程序设计方法学时再次遇到,不过每次遇到都要想想,不如干脆写道这里,mask一下。
题目如下:
一个数组中存有-1,0,1三类数若干,无序。排序成-1在前,0在中间,1在末尾。时间o(n),空间o(1)。
关键代码
int pf,p0,p1;// 负,0,1
p0 = p1 = n-1;//n为数组长度
while(p0!=pf)
{
if(a[p0]==-1)
{
a[p0]<-->a[pf];
pf++;
}
else
{
if (a[p0]==1)
{
a[p0]<-->a[p1];
p0--;
p1--;
}
else
p0--;
}
}
评论 (3)
引用通告此日志的引用通告 URL 是: http://milkwayhong.spaces.live.com/blog/cns!2ECD9BCD7BE9A7B9!131.trak 引用此项的网络日志
|
|
|