递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
楼主: 呵呵仙8
打印 上一主题 下一主题

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

[复制链接]

50

主题

566

帖子

2459

积分

金牌会员

Rank: 6Rank: 6

积分
2459
11#
 楼主| 发表于 2021-5-23 22:03:23 | 只看该作者
weilai 发表于 2021-5-23 20:22
我就看到了一个交换变量,和排序没什么必要关系

可能吧!!
回复

使用道具 举报

18

主题

337

帖子

2905

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2905
12#
发表于 2021-5-23 22:54:04 来自手机 | 只看该作者
我觉得取文本地址后,直接指针排序应该比复制内存这种方法快得多
回复

使用道具 举报

50

主题

566

帖子

2459

积分

金牌会员

Rank: 6Rank: 6

积分
2459
13#
 楼主| 发表于 2021-5-24 09:15:24 | 只看该作者
weilai 发表于 2021-5-23 22:54
我觉得取文本地址后,直接指针排序应该比复制内存这种方法快得多

主要不是单一的文本排序!而是自定义结构排序!像把超级列表框各列的项目写在自定义结构中!排序好了再写返出来!
回复

使用道具 举报

50

主题

566

帖子

2459

积分

金牌会员

Rank: 6Rank: 6

积分
2459
14#
 楼主| 发表于 2021-5-24 09:27:23 | 只看该作者
weilai 发表于 2021-5-23 22:54
我觉得取文本地址后,直接指针排序应该比复制内存这种方法快得多

我以前用易语言+七号排序法!用交换数组成员指针方法!用1秒时间就完成了10万项目,从取出项目到排序到写回项目!!就是如果用火山数组类来搞不知能快多少?
回复

使用道具 举报

6

主题

64

帖子

2585

积分

金牌会员

Rank: 6Rank: 6

积分
2585
15#
发表于 2021-5-25 11:11:15 | 只看该作者
我觉得debug模式对比效率没什么意义,这是火山交换变量方法的定义

找到SWAP定义

可以看到就是创建了一个临时变量进行交换,或许你可以试试交换变量与你这么操作在发布版下的效率对比。
回复

使用道具 举报

50

主题

566

帖子

2459

积分

金牌会员

Rank: 6Rank: 6

积分
2459
16#
 楼主| 发表于 2021-5-25 11:23:08 来自手机 | 只看该作者
龙纹 发表于 2021-5-25 11:11
我觉得debug模式对比效率没什么意义,这是火山交换变量方法的定义

找到SWAP定义

临时变量,有申请内存,释放内存的动作!当然慢啦!
不用编译也能知没交换数据结构来的快!!
回复

使用道具 举报

50

主题

566

帖子

2459

积分

金牌会员

Rank: 6Rank: 6

积分
2459
17#
 楼主| 发表于 2021-5-25 23:34:15 | 只看该作者
龙纹 发表于 2021-5-25 11:11
我觉得debug模式对比效率没什么意义,这是火山交换变量方法的定义

找到SWAP定义

交换结构比交换变量是快的!就是没调试模式下这么夸张!!交换结构60毫秒!
交换变量600毫秒!一样10倍速度左右!!
回复

使用道具 举报

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倍左右, 让我误以为效率差别没那么大, 两个测试文本再加长一些差距会更大, 所以得出了昨天的错误结论(那会儿脑抽了, 有点想当然了)
回复

使用道具 举报

50

主题

566

帖子

2459

积分

金牌会员

Rank: 6Rank: 6

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

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

使用道具 举报

50

主题

566

帖子

2459

积分

金牌会员

Rank: 6Rank: 6

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 04:41 , Processed in 0.100804 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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