2009.9.12日下午 迅雷2筆試題
一
有一副牌編號0~51,請把這副牌盡可能隨機的發到4個人手里
注1:已經有rand()函數可以調用,但是rand()函數開銷較大,請盡量少調用
a,b,c,d分別是13個元素的1維數組
函數原型 void deal( int[] a, int[] b, int[] c, int[] d );
二
實現字符串反轉的c庫函數 char* strrev(char* string)
注1:不可利用其他庫函數,算法盡量高效、占用空間少。
三
有10億個數,這些數的值都在0~1000萬之內。實現接口 get_bigger_count( unsigned value )
輸入一個值value,返回這10億個數中比value值大的數的數目。
class order_calculate
{
public:
order_calculate();
~order_calculate();
unsinged get_bigger_count( unsigned value )
}
注1:get_bigger_count接口會被頻繁的調用,實現要高效
注2:可以自己往內部任意添加變量和接口
注3:有個現成的接口 unsigned get_value_by_index( int idx ) 可以調用,該接口返回指定索引的value值
比如 get_value_by_index( 100 ), 返回10億個數中第100個數的值。該接口開銷較大,盡量少調用。
http://topic.csdn.net/u/20090912/20/8c60e06e-321c-49a6-b2cc-59248ba9cf36.html?28642