题目:请给出一个运行时间为Θ(nlgn)的算法,使之能在给定一个由n个整数构成的集合S和另一个整数x时,判断出S中是否存在有两个其和等于x的元素
它是一道算法导论的练习题。
看到这道题目,我的思路是:
1先排序,排序是nlgn的有归并排序、快排、堆排序等。
2x减去集合S中的一个元素得到另一个数,再把这个数到排序好的集合S中二分查找,花费时间为lgn
3如果没有查找到,那么再取一个S中的一个元素,再像2那样的过程。一直取S集合中元素,直到找到符合条件的为止。总共开销为nlgn。
这是我对这道题的思路。