问题描述:
给定一个由n个整数构成的集合S和另一个整数x,求解S中所有的两个数的组合,其和为x
算法分析:
首先通过Merge Sort进行排序,复杂度:O(NlgN)
然后利用Binary search查找x- s[i],这里需要一个循环来遍历整个集合,所以复杂度为N*O(lgN)= O(NlgN)
整个算法的复杂度为:O(NlgN)
C++实现代码如下:
问题描述:
给定一个由n个整数构成的集合S和另一个整数x,求解S中所有的两个数的组合,其和为x
算法分析:
首先通过Merge Sort进行排序,复杂度:O(NlgN)
然后利用Binary search查找x- s[i],这里需要一个循环来遍历整个集合,所以复杂度为N*O(lgN)= O(NlgN)
整个算法的复杂度为:O(NlgN)
C++实现代码如下: