您的位置:首页 > 其它

三个数字的中间值

2008-11-19 15:02 106 查看
原题是:只用两次比较,得到三个数的中间值。

背景:写快速排序的改进算法,取左、中、右三个值的中间值,作为pivot。但是,写了很久,居然写晕了,也不对。于是上网搜,发现,呵呵,很多人都做不对,或者能做对也非常慢。幸好找到的比较好的答案。

答案:不懂的千万别问我啊,据说这是初中数学题。

if( (a-b)*(b-c)>0 )

return b;

else if( (b-a)*(a-c)>0 )

return a;

else return c;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐