码迷,mamicode.com
首页 > 编程语言 > 详细

算法导论 2.3-7

时间:2014-10-18 03:01:14      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   ar   for   strong   sp   div   

问题:给定n个整数的集合S和另一个整数X,描述一个运行时间为O(log N)的算法,该算法能够确定S中是否存在两个其和刚好为X的元素

 

算法描述:

1、先将集合中元素排序在数组A中

2、对于集合中的每一个元素A[i],在排好序的数组A中二分查找 X-A[i]

3、查找成功则存在,循环结束后查找未成功则不存在

 

伪代码:

1 Sort( A )
2 n = A.length
3 for i = 1 to n
4     ans = BinarySearch( A, X-A[i], 1, n )
5     if ans != NotFound
6         return true
7 return false

 

算法复杂度分析:

T(N) = log 1 + log 2 + log3 +....+logN = log ( N! ) = log ( sqrt(2*PI*N)* ( N/e ) ^N ) = O( N log N )

复杂度为O(logN)

算法导论 2.3-7

标签:style   blog   color   os   ar   for   strong   sp   div   

原文地址:http://www.cnblogs.com/tallisHe/p/4032377.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!