51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2630|回复: 8
打印 上一主题 下一主题

[原创] vbs 数组问题。想了一上午也没想出来,难道是我真的老了么?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-4-1 14:05:46 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
加入有2个数组

a = array(1,2,3,4,5)
b = array(2,4)

b是a的子集,现想求b的补集,即 c = (1,3,5)该用什么算法??
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

9#
发表于 2008-4-1 15:41:32 | 只看该作者
就是排序的一种,比如说一个整形数组,已经排序。一个数要确定它是否在数组中或按大小正确插入,不需要遍历数组中所有元素,每次查找范围缩小1/2。

比如目标数组为1,2,5,7,8,10,11....
你要找9的插入位置,那么首先判断数组中间元素与9的大小,如果大,那么下次循环就在后半部分中递归循环,如果小就在前半部分继续递归循环。
比如第一次判断,9比数组的中间元素7大,那么下次循环就在8,10,11之间继续做二分判断。

其实很简单,算法的代码网上有很多哈。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2008-4-1 15:22:58 | 只看该作者
数组确实很长~~效率确实很慢~~

啥叫2分法?~~

我不是计算机系的,没怎么接触过编程~~~
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-4-1 15:19:15 | 只看该作者
楼主上的说的不错,如果太长的,QTP可能运行的时候,会出现报错的,如果结合实践中的内容,考虑更好的办法
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-4-1 14:51:34 | 只看该作者
如果数组长度很大,效率肯定不行。
如果保证为整数数组,可以先把数组排序,然后二分发查找会好些。
当然如果有第三方程序库最方便,可惜俺不熟vbscipt,正在了解中。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-4-1 14:47:45 | 只看该作者
哈哈,不客气。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-4-1 14:40:59 | 只看该作者
谢谢2楼~~~
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-4-1 14:40:48 | 只看该作者
恩~~方法可行~~受教了~~~
回复 支持 反对

使用道具 举报

该用户从未签到

2#
发表于 2008-4-1 14:29:25 | 只看该作者
hi, LZ,俺不是学数学的,vbscript也不熟悉。
这样可以?
a = Array(1, 2, 3, 4, 5)
b = Array(2, 4)
Dim b_isIn
b_isIn = False
For j = 0 To UBound(a)
    For i = 0 To UBound(b)
        If a(j) = b(i) Then
            b_isIn = True
            Exit For
        End If
    Next

    If b_isIn = False Then
        MsgBox (a(j) & " is a result")
    Else
        b_isIn = False
    End If
Next

在msgbox那里换成其它操作。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-26 19:52 , Processed in 0.070000 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表