|
本帖最后由 CNWTEPRG 于 2020-3-17 11:26 编辑
- .版本 2
- .程序集 程序集1
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- .局部变量 默认数组, 短整数型, , "100000000"
- .局部变量 数组, 短整数型, , "0"
- .局部变量 新算法处理结果, 短整数型, , "0"
- .局部变量 计数, 整数型
- .局部变量 时间, 整数型
- 置随机数种子 ()
- 输出调试文本 (“正在初始化数组...”)
- 时间 = 取启动时间 ()
- .计次循环首 (取数组成员数 (默认数组), 计数)
- 默认数组 [计数] = 取随机数 (, ) × 取随机数 (, )
- .计次循环尾 ()
- 数组 = 默认数组
- 输出调试文本 (“初始化耗时(毫秒):” + 到文本 (取启动时间 () - 时间))
- 输出调试文本 (“正在去重(BitMap算法)”)
- 时间 = 取启动时间 ()
- 短整数型数组_去重_BitMap (数组)
- 输出调试文本 (“BitMap算法耗时(毫秒):” + 到文本 (取启动时间 () - 时间))
- 新算法处理结果 = 数组
- 数组 = 默认数组
- 输出调试文本 (“正在去重(吃尾算法)”)
- 时间 = 取启动时间 ()
- 短整数型数组_去重_吃尾 (数组)
- 输出调试文本 (“吃尾算法耗时(毫秒):” + 到文本 (取启动时间 () - 时间))
- 输出调试文本 (选择 (短整数型数组_等于 (数组, 新算法处理结果), “处理结果一致”, “处理结果不一致”))
- .子程序 短整数型数组_去重_吃尾
- .参数 数组, 短整数型, 参考 数组
- .局部变量 外循环, 整数型
- .局部变量 内循环, 整数型
- .计次循环首 (取数组成员数 (数组), 外循环)
- .变量循环首 (取数组成员数 (数组), 外循环 + 1, -1, 内循环)
- .如果真 (数组 [外循环] = 数组 [内循环])
- 删除成员 (数组, 内循环, )
- .如果真结束
- .变量循环尾 ()
- .计次循环尾 ()
- .子程序 短整数型数组_去重_BitMap, , 公开
- .参数 数组, 短整数型, 参考 数组
- .局部变量 位映射表, 字节型, , "65536"
- .局部变量 计数, 整数型
- .局部变量 索引, 整数型
- .局部变量 数组副本, 短整数型, , "0"
- .计次循环首 (取数组成员数 (数组), 计数)
- 索引 = 短整数处理 (数组 [计数])
- .如果真 (位映射表 [索引] = 0)
- 加入成员 (数组副本, 数组 [计数])
- 位映射表 [索引] = 1
- 到循环尾 ()
- .如果真结束
- .计次循环尾 ()
- 数组 = 数组副本
- .子程序 短整数处理, 整数型, , 短整数(-32768~32767)到无符号整数(0~65535)并加1
- .参数 短整数, 短整数型
- 置入代码 ({ 102, 139, 69, 8, 15, 183, 192, 64, 201, 194, 4, 0 })
- ' mov ax,[ebp+8]
- ' movzx eax,ax
- ' inc eax
- ' leave
- ' retn 4
- 返回 (0)
- .子程序 短整数型数组_等于, 逻辑型
- .参数 数组A, 短整数型, 数组
- .参数 数组B, 短整数型, 数组
- .局部变量 成员数, 整数型
- .局部变量 计数, 整数型
- 成员数 = 取数组成员数 (数组A)
- .如果真 (成员数 ≠ 取数组成员数 (数组B))
- 返回 (假)
- .如果真结束
- .计次循环首 (成员数, 计数)
- .如果真 (数组A [计数] ≠ 数组B [计数])
- 返回 (假)
- .如果真结束
- .计次循环尾 ()
- 返回 (真)
复制代码 |
|