- 博客(2)
- 资源 (2)
- 收藏
- 关注
原创 两个小算法题
1、给定一个数组,该数组包含N个元素。我们想要确定是否存在两个数它们的和等于给定的数K。例如,如果输入是8,4,1,6而K是10,则答案为yes(4和6)。一个数可以被使用两次。 给出求解该问题的O(NlogN)算法。 解:先将数组递增快速排序。设数组为L[],则用下面的算法处理之: bool f( int *L, int len, int sum )...{ int i
2008-03-18 09:15:00 845
原创 选择问题的线性期望时间算法
由于我们能够以O(NlogN)时间给数组排序,因此可以期望为选择问题得到一个更好的时间界。我们这里介绍的查找集合S中第k个最小元的算法几乎与快速排序相同。事实上,其前三步是相同的。我们把这种算法叫做快速选择(quickselect)。令|Si|为Si中元素的个数,快速选择的步骤如下: 1)如果|S|=1,那么k=1并将S中的元素作为答案返回。如果正在使用小数组的截止方法且|S|≤CUTOF
2008-03-07 22:30:00 2415
Wireless Sensor Networks: Signal Processing and Communications Perspectives
2008-02-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人