觅风论坛
标题:
千万级整数型数组去重仅需400ms源码
[打印本页]
作者:
三猫
时间:
2023-1-31 09:10
标题:
千万级整数型数组去重仅需400ms源码
.版本 2
.子程序 数组_去重复_整数型3, 整数型, 公开, 返回剩余不重复数组的成员数量
.参数 整数数组, 整数型, 数组, 要去重复的 整数数组
.局部变量 i, 整数型
.局部变量 局_参考空间, 整数型, , "0", 空间
.局部变量 局_最大值, 整数型
.局部变量 局_最小值, 整数型
.局部变量 数组长度, 整数型
.局部变量 a, 整数型
.局部变量 参数1, 双精度小数型
' 不需要用长整数,易语言数组容量应该超不过整数型极限2147483648
.如果真 (取数组成员数 (整数数组) = 0)
返回 (0)
.如果真结束
连续赋值 (整数数组 [1], 局_最大值, 局_最小值)
.变量循环首 (2, 取数组成员数 (整数数组), 1, i)
.如果 (整数数组 <i> > 局_最大值)
局_最大值 = 整数数组 <i>
.否则
.如果真 (整数数组 <i> < 局_最小值)
局_最小值 = 整数数组 <i>
.如果真结束
.如果结束
.变量循环尾 ()
数组长度 = 局_最大值 - 局_最小值 + 1
参数1 = 局_最小值 - 1
' 开辟空间
重定义数组 (局_参考空间, 假, 数组长度)
.计次循环首 (取数组成员数 (整数数组), i)
.如果真 (局_参考空间 [整数数组 <i> - 参数1] = 0)
局_参考空间 [整数数组 <i> - 参数1] = 1
.如果真结束
.计次循环尾 ()
.计次循环首 (取数组成员数 (局_参考空间), i)
.如果真 (局_参考空间 <i> = 1)
a = a + 1
整数数组 [a] = i + 参数1
.如果真结束
.计次循环尾 ()
重定义数组 (整数数组, 真, a)
返回 (取数组成员数 (整数数组))
复制代码
欢迎光临 觅风论坛 (https://www.eyyba.com/)
Powered by Discuz! X3.4