三个数字的中间值
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;
背景:写快速排序的改进算法,取左、中、右三个值的中间值,作为pivot。但是,写了很久,居然写晕了,也不对。于是上网搜,发现,呵呵,很多人都做不对,或者能做对也非常慢。幸好找到的比较好的答案。
答案:不懂的千万别问我啊,据说这是初中数学题。
if( (a-b)*(b-c)>0 )
return b;
else if( (b-a)*(a-c)>0 )
return a;
else return c;
相关文章推荐
- 三个整数,求中间那个数字。
- [LeetCode] Maximum Product of Three Numbers 三个数字的最大乘积
- C语言三个数字比较大小
- 【前端笔试题】给定数字N,求从1到N中间0出现的次数
- C语言-将1到9这九个数字分成三个3位数,要求第一个3位数,正好是第二个3位数的1/2,是第三个3位数的1/3。问应当怎样分,编写程序实现。
- 单链表数据中含有数字字符、字母字符、其他字符三种 。 构造3个循环链 ,使得循环链只有一种字符 。但必须要使用原来单链的结点空间作为三个表的结点空间
- 程序员面试题目总结--数组(三)【旋转数组的最小数字、旋转数组中查找指定数、两个排序数组所有元素中间值、数组中重复次数最多的数、数组中出现次数超过一半的数】
- 三个国家贸易,单据出口方可以是中间国家吗?
- 三个数找出大小为中间的数(Python)
- 自定义标题栏(中间是三个文本)
- 三个文本框自定义数字抽奖机
- 在一个长度为n的整形数组a里,除了三个数字只出现一次外,其他的数字都出现了2次。请写程序输出任意一个只出现一次的数字
- 1-9九个数字组成一个九位数 如果从左边起取出1个数字,需要能被1整除,取出两个数字组成的数能被2整除,取出三个数字组成的数能被3整除,依次类推
- 1-9这9个数字划分成三个3位数,第一个分别是第二、三个的2倍,3倍,用程序划分
- poj2388---求奇数个数字的最中间的数
- 指针初接触,输入三个数字,按照从大到小的顺序输出
- 程序员面试题精选100题(63)-数组中三个只出现一次的数字[算法]
- 查询出客户编号按最后三个数字由大到小排序的记录(我的第一个SAP B1 Query)
- Snail—1-9这9个数字划分成三个3位数,第一个分别是第二、三个的2倍,3倍
- 从数字列表中,任意三个相加为指定值的所有组合