摘要:
题目:(见于《算法导论》原书第二版P23,2.3-7请给出一个运行时间为O(nlgn)的算法,使之能在给定的一个由n个整数构成的集合S和另一个整数x时,判断出S中是否存在两个其和等于x的元素。分析:题目明确给出要求运行时间为O(nlgn),这样的话,首先想到的枚举算法行不通,因为在不存两数之和为x的时候,其时间复杂度为O(n^2)。再考虑另外的算法,对于这个问题,不妨首先对数组进行排列,而排列可以做到运行时间为O(nlgn)的时间界,排序好,然后再来个二分搜索,二分搜索的时间复杂度也是O(nlgn),这样看来,总的看来,时间的复杂度可以满足题目要求。具体的代码如下: 1 #include< 阅读全文
posted @ 2012-09-22 21:11
kaka_
阅读(670)
评论(0)
推荐(0)