仿桶排序思想的内部排序
vb吧
全部回复
仅看楼主
level 11
余思培 楼主
都知道桶排序是个外部排序,但由于刚接触排序算法不久,就想着自己按照看过的排序思想来写一个排序算法。算法早已完成,并已在逻辑上和Java编译器上验证过了。最近返校,然后开始把这个算法用VB实现。

镇楼
图为运行效果)
2020年06月15日 16点06分 1
level 11
余思培 楼主
在VB实现的时候,第一个问题就是数组问题,虽然到现在也没能彻底解决。(目前采用的方案是结构数组,感谢之前求助贴 隨風 大佬的提示,当然也感谢另外的大佬给出的提示和建议,但由于个人水平原因不能完成,或不会用于此算法)。
当然在本帖如果有大佬路过给出一个更优的方案最好不过。
本楼附数组尝试过程中的测试图及源码云盘
(后面测试固定数组未截图,其速度远快于我目前的使用的方式,但我不会用于此此排序,换言之目前演示排序很大程度上受到了数组的制约)
2020年06月15日 17点06分 2
level 11
余思培 楼主
除受数组制约影响外,演示程序的输出显示也暴露出一个问题——排序1秒内解决,但输出大量内容时却消耗了大量的时间,虽然对算法无影响,但我也产生了一个疑问,如何使超长字符串输入到文本框时,消耗的时间尽可能缩短?
2020年06月15日 17点06分 3
level 11
余思培 楼主
另,由于算法特性,以什么条件为依据选择内部排序可以使排序时间缩短以及提高排序效率,目前我还尚不清楚,不过个人认为这是一个数学问题,可能需要数学来解决,后面我会进行尝试,当然也希望有大佬提供思路和技巧。
2020年06月15日 17点06分 4
level 11
余思培 楼主
本楼为桶排部分源码图(最后一行没截到,该部分为:intArray=intTemp)和源码云盘图
2020年06月15日 17点06分 5
level 11
余思培 楼主
望各位大佬指点,望各位VB学习者讨论交流
2020年06月15日 17点06分 6
level 8
字符串拼接是耗时,但10000个也不至于17s
2020年06月15日 23点06分 7
拼接还好,主要是输出这一步耗时,就boxOutput.Text = strTemp这一步要了17秒,拼接也是1秒左右完成的
2020年06月15日 23点06分
level 13
建议:还有循环内尽量少调用函数(比如LBound、UBound都是函数)
比如 For i =0 to UBound(a) 这种初始只调用一次UBound,如果是
For i =0 to 1000000
c =Ubound(a) - LBound(a) ‘这种随着循环次数越多调用次数越多,耗时也多
next
'UBound(a)、LBound(b) 都是可以用变量代替的
2020年06月16日 01点06分 9
了解了,谢谢大佬
2020年06月16日 01点06分
@余思培 还有编译exe,编译选项全开,速度优化,如果你之前没开那还要快不少
2020年06月16日 02点06分
编译成本机代码
2020年06月16日 02点06分
区别应该不大,ubound,lbound这种函数,应该只是到内存某处取个值
2020年06月16日 02点06分
吧务
level 13
数据比较多的情况下,VB 数组会装不下,建议使用【数据库】技术。
2020年06月16日 17点06分 10
就是不会数据库才搞得内部排序😂桶排序本来是一个外部排序的
2020年06月16日 22点06分
花那么多时间去研究一个适用范围很窄(甚至于没有什么实用价值)的排序方法,还不如把这个时间用来学习数据库知识。学了数据库知识后,会让你的(数据处理)思维扩展到一个崭新的阶段。
2020年06月17日 05点06分
level 7
刚学会列表框排序前来围观[吃瓜]
2020年06月16日 23点06分 11
我不会列表框😂
2020年06月17日 00点06分
level 9
厉害厉害学习了
2020年06月18日 06点06分 12
1