tang_ge 发表于 2021-8-27 17:42:50

[算法分享]QQ发言榜

本帖最后由 tang_ge 于 2021-8-28 10:32 编辑

由于是临时写的代码没有用 Drea 的开发模板,但本贴注重的是其算法。


之前开发群里有人再写QQ发言榜时遇到了如何排序的问题,今天刚好有点空便写了一下发言排序。


窗体样式(左:超级列表框1,右:超级列表框2):
https://i.loli.net/2021/08/27/m47wQOPlSvT9iVM.png

此处使用插入随机数据来代替发言的QQ和次数,实际应用需要直接使用真实的发言数据。
https://i.loli.net/2021/08/27/TFhIMGbLZH9CAgP.png

算法需要用到名为 QQ发言榜 的自定义数据类型
https://i.loli.net/2021/08/27/DTzJtNMImS8eZRB.png

代码中的注释已对脚本做出简单解释
https://i.loli.net/2021/08/27/vYOTUQZthRFIpL9.png
效果:
https://i.loli.net/2021/08/27/dpkJrQb6425ZGYy.png

*如果没有看到图片可以刷新一下

附上源码:
.版本 2
.支持库 iext

.子程序 _按钮2_被单击
.局部变量 发言榜, QQ发言榜, , "0"
.局部变量 temp1, QQ发言榜
.局部变量 temp2, QQ发言榜
.局部变量 i_1, 整数型
.局部变量 i_2, 整数型
.局部变量 i_3
.局部变量 引索, 整数型

‘内容由 tang_ge 独创,未经允许,请勿转载至其它平台
.计次循环首 (超级列表框1.取表项数 (), i_1)
    temp1.QQ = 超级列表框1.取标题 (i_1 - 1, 0)
    temp1.次数 = 到整数 (超级列表框1.取标题 (i_1 - 1, 1))
    插入成员 (发言榜, 取数组成员数 (发言榜) + 1, temp1)
.计次循环尾 ()
.计次循环首 (取数组成员数 (发言榜) - 1, )
    .计次循环首 (取数组成员数 (发言榜) - 1, i_2)
      .如果真 (发言榜 .次数 < 发言榜 .次数)
            temp2 = 发言榜
            发言榜 = 发言榜
            发言榜 = temp2
      .如果真结束

    .计次循环尾 ()
.计次循环尾 ()
.计次循环首 (取数组成员数 (发言榜), i_3)
    引索 = 超级列表框2.插入表项 (, , , , , )
    超级列表框2.置标题 (引索, 0, 发言榜 .QQ)
    超级列表框2.置标题 (引索, 1, 到文本 (发言榜 .次数))
.计次循环尾 ()

.版本 2

.数据类型 QQ发言榜
    .成员 QQ, 文本型
    .成员 次数, 整数型



高坂清风 发表于 2021-8-27 17:50:10

顶顶顶,自古一楼是我占

nbj 发表于 2022-4-5 15:09:58

谢谢大佬
页: [1]
查看完整版本: [算法分享]QQ发言榜