递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 14546|回复: 25
打印 上一主题 下一主题

[视窗] 呵呵仙_1图教您如何写高效的排序

[复制链接]

50

主题

566

帖子

2459

积分

金牌会员

Rank: 6Rank: 6

积分
2459
跳转到指定楼层
楼主
发表于 2021-5-13 23:38:28 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 呵呵仙8 于 2021-5-13 23:43 编辑

可能有大神已经想到,交换变量地址下4个字节的数据地址不就OK了?是的,没错!!这是易语言的做法!!
可是火山PC的数据结构和易语言的不同!!交换变量地址下4个字节,完全行不通!!OK,交换整个数据结构
总可以了吧!!别说,好像真可以!!如图:

代码中是以文本型作测试的!!想不到火山PC文本型数据结构64位是88字节这么长,32位是44字节这么长!!
如果按我这种写法的话。易语言优于32位火山优于64位火山!!
现在是知道如何写,才能快起来了!!OK,用在数组身上就能体验到了!!可是火山的是一个数组类,不是易语言的
变量[10000000]这种操作的!!随便加减成员,随便取各成员变量地址!!火山的数组类,行不通!!变量[10]这种又不让加减成员,重定义!!
回复

使用道具 举报

18

主题

337

帖子

2905

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2905
26#
发表于 2021-5-26 14:08:48 来自手机 | 只看该作者
火山支持嵌入式的,直接嵌入c代码,肯定无敌
回复

使用道具 举报

50

主题

566

帖子

2459

积分

金牌会员

Rank: 6Rank: 6

积分
2459
25#
 楼主| 发表于 2021-5-26 13:50:45 | 只看该作者
weilai 发表于 2021-5-26 13:18
据说比数组直接取下标还快,你说神奇不

你看到的就是易语言的优点!但是,吴总认为你们的优点是缺点,这才是神奇之处!你用到火山就知不能用易语言或其它的语言来看火山的数据结构了!!
回复

使用道具 举报

50

主题

566

帖子

2459

积分

金牌会员

Rank: 6Rank: 6

积分
2459
24#
 楼主| 发表于 2021-5-26 13:32:58 | 只看该作者
龙纹 发表于 2021-5-26 13:22
我用的是你图片里内存复制精简做的测试。
目前火山的实现简单又正确,但如果高频率调用的话这个方法确实 ...

改为嵌入式!你会发现更快!
回复

使用道具 举报

6

主题

64

帖子

2585

积分

金牌会员

Rank: 6Rank: 6

积分
2585
23#
发表于 2021-5-26 13:22:43 | 只看该作者
呵呵仙8 发表于 2021-5-26 11:34
如果是一些自定义数据结构排序的话,用临时变量方式交换的话,所花的时间更长!除非吴总改用交换结构方式 ...

我用的是你图片里内存复制精简做的测试。
目前火山的实现简单又正确,但如果高频率调用的话这个方法确实挺好。
回复

使用道具 举报

18

主题

337

帖子

2905

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2905
22#
发表于 2021-5-26 13:18:27 来自手机 | 只看该作者
据说比数组直接取下标还快,你说神奇不
回复

使用道具 举报

18

主题

337

帖子

2905

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2905
21#
发表于 2021-5-26 13:17:12 来自手机 | 只看该作者
吴总肯定不会这样改的,因为如果操作文本或者自定义结构特别要求效率的话,直接指针操作,速度能快50倍以上(上不封顶),,当然这是我认为的,我没有用c++写过程序,也没有用火山视窗写过程序,但是凭我对指针的了解,那东西相当的快,快到极致
回复

使用道具 举报

50

主题

566

帖子

2459

积分

金牌会员

Rank: 6Rank: 6

积分
2459
20#
 楼主| 发表于 2021-5-26 11:34:50 | 只看该作者
龙纹 发表于 2021-5-26 10:28
嗯, 比交换变量快是肯定的,我昨天想表达的只是在debug下对比一些操作的效率不太好
还有就是我虽然也是按 ...

如果是一些自定义数据结构排序的话,用临时变量方式交换的话,所花的时间更长!除非吴总改用交换结构方式!!可以省去大量申请内存等时间!!
回复

使用道具 举报

50

主题

566

帖子

2459

积分

金牌会员

Rank: 6Rank: 6

积分
2459
19#
 楼主| 发表于 2021-5-26 11:25:37 | 只看该作者
龙纹 发表于 2021-5-26 10:28
嗯, 比交换变量快是肯定的,我昨天想表达的只是在debug下对比一些操作的效率不太好
还有就是我虽然也是按 ...

我把支持库的复制内存的方法又优化了!所以就又快了5倍速度!
回复

使用道具 举报

6

主题

64

帖子

2585

积分

金牌会员

Rank: 6Rank: 6

积分
2585
18#
发表于 2021-5-26 10:28:06 | 只看该作者
呵呵仙8 发表于 2021-5-25 23:34
交换结构比交换变量是快的!就是没调试模式下这么夸张!!交换结构60毫秒!
交换变量600毫秒!一样10倍速 ...

嗯, 比交换变量快是肯定的,我昨天想表达的只是在debug下对比一些操作的效率不太好
还有就是我虽然也是按1000W次测试的, 但是测试文本过短, 昨天我测试时差距不大, 5倍左右, 让我误以为效率差别没那么大, 两个测试文本再加长一些差距会更大, 所以得出了昨天的错误结论(那会儿脑抽了, 有点想当然了)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-17 04:54 , Processed in 0.098747 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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