JAN*_*JAN 6 arrays sorting algorithm big-o
鉴于以下问题,我很感激任何更正,因为我对当前的问题没有解决方案(取自我教授的一个考试!!!):
备注:这不是功课!
问题:
给定两个排序的数组A(具有长度n)和B(具有长度m),每个数组
element(在两个数组中)是一个实数和一个数字X(也是一个实数),
我们想知道是否存在a ? A和b ? B,如:
a + b = X ,在O(n+m)运行时间.
方案:
首先,我们从两个数组的末尾开始检查,因为我们不需要大于的数字X:
k = m
而A [i]> X,i = i -1
定义j = 0.现在开始从当前的iin A和jin中开始运行B:
while i > 0 , j < k : if A[i]+B[j] == X ,然后返回两个单元格 j = j+1 , i = i -1 最后,我们要么有两个元素,要么我们在一个或两个数组中超出范围,这意味着a + b = X确实不存在这样的两个元素.
任何评论都会非常感激
谢谢
| 归档时间: |
|
| 查看次数: |
2464 次 |
| 最近记录: |