精易论坛

标题: 纯数组去重复1千万3秒1亿30秒,如此类推,不论重复量多少都一样。 [打印本页]

作者: yjwfdc    时间: 2013-5-4 21:05
标题: 纯数组去重复1千万3秒1亿30秒,如此类推,不论重复量多少都一样。
本帖最后由 yjwfdc 于 2013-5-5 13:20 编辑

纯数组去重复1千万3秒1亿30秒,如此类推,不论重复量多少都一样。
如果成员数比较大,不要点显示,显示会很慢很慢的。只点“加入数组”和“去重复”就可以了。
飘逸纯数组去重算法1千万3秒。x.rar (3.52 KB, 下载次数: 710)

一百万成员卡介面0.3秒,一千万成员数组才会卡介面3秒。
这只是原理,使用的时候是应该用线程的。

修改了一下,内存占用少了一半,把排序时间和去重复时间分开显示,时间主要用在排序,1亿排序用了27秒,去重复只需要3秒.
加入一个数组写出模块,写出1千万数组到文件需时约10秒,写出1亿数组需时约100秒。
不好意思,原来那个计错数了,少输出了一个。

不重发付件了,只更新了付件。



补充内容 (2018-8-9 23:09):
是纯数数组去重复,不支持文本,标题打少了一个"数"字。
作者: zeroing    时间: 2013-5-4 21:07
这么牛逼的东西必须拿走
作者: 陈小胖    时间: 2013-5-4 21:17
运行的时候太卡了。。

建议 使用命令    启动线程


.版本 2
.支持库 EThread
.支持库 commobj

.程序集 窗口程序集1
.程序集变量 原数组, 整数型, , "0"
.程序集变量 结果数组, 整数型, , "0"
.程序集变量 成员数, 长整数型
.程序集变量 k, 整数型

.子程序 _加入数组按钮_被单击

启动线程 (&子程序_加入数组, , )


.子程序 子程序_加入数组
.局部变量 i, 整数型

成员数 = 到数值 (编辑框2.内容)
置随机数种子 (取启动时间 ())
重定义数组 (原数组, 假, 成员数)
.计次循环首 (成员数, i)
    原数组 [i] = 取随机数 (0, 成员数 ÷ 10) × 取随机数 (0, 成员数 ÷ 10) + 取随机数 (0, 成员数 ÷ 10)
.计次循环尾 ()
信息框 (“成员数” + 到文本 (成员数), 0, )



.子程序 _显示数组按钮_被单击

启动线程 (&子程序_显示数组, , )

.子程序 _显示按钮_被单击

启动线程 (&子程序_显示, , )

.子程序 子程序_显示
.局部变量 i, 整数型
.局部变量 快速文本, 快速文本对象

k = 取启动时间 ()
编辑框1.内容 = “”
.计次循环首 (取数组成员数 (结果数组), i)
    快速文本.添加 (到文本 (结果数组 [i]) + #换行符)
.计次循环尾 ()
编辑框1.内容 = 快速文本.取文本 (, )
编辑框1.加入文本 (“快速文本显示用时” + 到文本 (取启动时间 () - k) + #换行符)


.子程序 子程序_显示数组
.局部变量 i, 整数型
.局部变量 文件号, 整数型
.局部变量 文本, 文本型

k = 取启动时间 ()
文件号 = 打开内存文件 ()
.计次循环首 (成员数, i)
    写文本行 (文件号, 原数组 [i])
.计次循环尾 ()
移到文件首 (文件号)
文本 = 读入文本 (文件号, )
关闭文件 (文件号)

编辑框1.内容 = 文本
编辑框1.加入文本 (“内存文件显示用时” + 到文本 (取启动时间 () - k) + #换行符)


.子程序 _去重复按钮_被单击

启动线程 (&子程序_去重复, , )

.子程序 子程序_去重复
.局部变量 成员数, 整数型
.局部变量 i, 长整数型
.局部变量 a, 整数型
.局部变量 记录位置, 整数型

k = 取启动时间 ()
数组排序 (原数组, 真)
成员数 = 取数组成员数 (原数组)
重定义数组 (结果数组, 假, 成员数)

i = 0
记录位置 = 1
.判断循环首 (记录位置 ≤ 成员数)
    i = i + 1
    结果数组 [i] = 原数组 [记录位置]
    .循环判断首 ()
        记录位置 = 记录位置 + 1
        .如果真 (记录位置 > 成员数)
            跳出循环 ()
        .如果真结束

    .循环判断尾 (结果数组 [i] = 原数组 [记录位置])
.判断循环尾 ()

成员数 = i - 1
重定义数组 (结果数组, 真, 成员数)
编辑框1.加入文本 (“不重复数” + 到文本 (成员数))
编辑框1.加入文本 (“去重复用时” + 到文本 (取启动时间 () - k) + #换行符)


作者: yjwfdc    时间: 2013-5-4 21:39
本帖最后由 yjwfdc 于 2013-5-4 21:44 编辑
陈小胖 发表于 2013-5-4 21:17
运行的时候太卡了。。

建议 使用命令    启动线程

一百万成员卡介面0.3秒,一千万成员数组才会卡介面3秒。

这只是原理,使用的时候是应该用线程的。
作者: AaaaLiang丶    时间: 2013-5-4 21:56
拿下了 谢谢楼主~
作者: yjwfdc    时间: 2013-5-5 13:20
修改了一下,内存占用少了一半,把排序时间和去重复时间分开显示,时间主要用在排序,1亿排序用了27秒,去重复只需要3秒.
加入一个数组写出模块,写出1千万数组到文件需时约10秒,写出1亿数组需时约100秒。
不好意思,原来那个计错数了,少输出了一个。
不重发付件了,只更新了付件。



作者: 情谊yu永恒    时间: 2013-5-9 18:05
看看,什么情况
作者: 宇智波·佐助    时间: 2013-5-12 11:18
看下了         
作者: ˇˇ    时间: 2013-5-16 07:53
看一看,学一学.
作者: 耍流氓的牛    时间: 2013-5-30 09:41
这个东西必须保留,以后备用
作者: qqq141    时间: 2013-6-10 19:58
好软件啊0.0...
作者: seismic    时间: 2013-6-16 16:55
这个东西必须保留,以后备用


作者: MikeLo    时间: 2013-6-27 14:50
谢谢了,拿下
作者: shen110    时间: 2013-7-1 17:44
没有下载点。可惜
作者: murder    时间: 2013-8-3 18:38
这个东西 好啊 用一下
作者: bs80119514    时间: 2013-8-4 10:30
额.有点厉害哦
作者: chenghao    时间: 2013-9-12 13:35
       学习下
作者: h_xonly    时间: 2013-11-15 19:52
太强大了,简单实用,不顶对不起自己
作者: 彩王    时间: 2013-12-29 17:59
这个更牛逼强大
作者: 小爬虫    时间: 2014-1-4 22:55
真有楼主说的这么厉害?下载看看
作者: eee520    时间: 2016-6-9 15:26

这个更牛逼强大
作者: 1522456991    时间: 2016-6-9 16:48
我要试试,嘻嘻
作者: 黑白郎君    时间: 2016-11-6 00:02
学习下!!!!!!!!!!!
作者: 回收二手电脑    时间: 2016-11-20 13:34
我表示,这个不能处理文本型得
作者: jjbbjjbb    时间: 2017-6-29 13:09
感谢分享,下载了
作者: yjwfdc    时间: 2018-8-9 23:00
回收二手电脑 发表于 2016-11-20 13:34
我表示,这个不能处理文本型得

文本型的开发出来了,需要收费

千万文本数组去重复6秒
https://125.confly.eu.org/forum.php?mod=viewthread&tid=14212651&extra=
作者: yang6812    时间: 2018-9-3 12:48
这么牛逼的东西必须拿走
作者: jgyc    时间: 2018-9-24 11:09
处理出来的结果有问题

本来是每行有5位数,处理出来后,有2位,有3位,有4位,有5位数
作者: 沧海生烟    时间: 2019-7-26 17:52
看看,好像不错的样子





欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4