华科10年计算机考研复试笔试(算法基础)(1)

【1】给一系列数:a1,a2,a3,...,an,要求找出其中2个数ai,aj,使得ai+aj=X,算法时间复杂度为:O(nlogn)。

思路:

先排序,采用快排。在设置2个指针low、high,分别指向第一个、最后一个数,然后向中间扫描靠拢,遇到a[low]+a[high]就输出。

直到low=high。

 

参考代码:

数据测试:

posted on 2011-03-21 15:28  江南烟雨hust  阅读(292)  评论(0)    收藏  举报

导航