精易论坛

标题: 归并排序优化完比某些快速排序还要快 [打印本页]

作者: APPLEUFO    时间: 2020-6-3 12:49
标题: 归并排序优化完比某些快速排序还要快
归并排序优化完比某些快速排序还要快。
原来用了自定义shuj类型很慢,经过好几个版本的优化,现在(无重复shuj下)已经比平常的归并排序快了。
还是没有系统自带的支持库快排与汇编快排更快就是

一千万shuj下 ,10秒和其他快排25秒 已经是快一倍的速度了。
现在文本比较一般都是快排改的吧。用与文本比较的话,应该能加速一倍多了

* “10 秒 405 毫秒 ”
* 真 | “成功=真” | “最优化版本”
* “21 秒 778 毫秒 ”
* 真 | “成功=真” | 5
* “21 秒 107 毫秒 ”
* 真 | “成功=真” | 4
* “21 秒 372 毫秒 ”
* 真 | “成功=真” | 3
* “27 秒 66 毫秒 ”
* 真 | “成功=真” | 2
* “1 分 45 毫秒 ”
* 真 | “成功=真” | 1
* “3 秒 198 毫秒 ”
* 真 | “成功=真” | “支持库自带 数组排序”
* “32 秒 994 毫秒 ”
* 真 | “成功=真” | “数组模块_代码之美快速排序”
* “25 秒 881 毫秒 ”
* 真 | “成功=真” | “QuickSort 快排”
* “ok”
归并排序的优化01.e (135.94 KB, 下载次数: 35)
夏夜自由模块6.7.zip (103.11 KB, 下载次数: 20)


  
窗口程序集名保 留  保 留备 注
程序集6   
变量名类 型数组备 注
程变_临时整数型0用一直在的程序集变量存储

子程序名返回值类型公开备 注
归并排序6 不用一直申请释放临时变量。直接申请一个大的,和数组一样的变量使用
参数名类 型参考可空数组备 注
参数_数组整数型
参数_顺序逻辑型
变量名类 型静态数组备 注
局变_数组个数整数型 
n1整数型跨度
局变_游标开始处整数型 
局变_游标x首整数型 
局变_游标x尾整数型 
局变_游标y首整数型 
局变_游标y尾整数型 
局变_数组个数 = 取数组成员数 (参数_数组)
重定义数组 (程变_临时, 假, 局变_数组个数)
如果真 (局变_数组个数 = 0 局变_数组个数 = 1)
返回 ()

n1 = 1
循环判断首 ()
局变_游标开始处 = 1
循环判断首 ()
局变_游标x首 = 局变_游标开始处
局变_游标x尾 = 局变_游标x首 + n1 - 1
局变_游标y首 = 局变_游标x尾 + 1
局变_游标y尾 = 局变_游标x尾 + n1
如果 (局变_游标x尾 ≥ 局变_数组个数)  ' 说明只有一组
跳出循环 ()


如果 (局变_游标y尾 < 局变_数组个数)  ' 正好两组' 这里说明  有2组,包含两组
有序数组合并06 (参数_数组, 局变_游标x首, 局变_游标x尾, 局变_游标y首, 局变_游标y尾)


局变_游标y尾 = 局变_数组个数  ' ------------' 等于    大于两组
有序数组合并06 (参数_数组, 局变_游标x首, 局变_游标x尾, 局变_游标y首, 局变_游标y尾)
跳出循环 ()


局变_游标开始处 = 局变_游标y尾 + 1
循环判断尾 ()
n1 = n1 × 2
如果真 (n1 ≥ 局变_数组个数)  ' 等于的话,只有一组,大于的话  不足一组都跳出
跳出循环 ()

循环判断尾 ()
如果真 (是否为空 (参数_顺序))  ' 参数2 代码 开始
参数_顺序 = 真
如果真 (参数_顺序 = )
数组模块_反转数组 (参数_数组)  ' 从大到小调换一遍



作者: yxl2008    时间: 2020-6-3 14:05
感谢分享,下载学习!!!
作者: wjswzj0    时间: 2020-6-3 17:39
感谢分享,下载学习!!!
作者: vSpear    时间: 2020-6-3 19:41
感谢楼主分享,支持一下!


                                        藏起来的小尾巴,不让你看!  
作者: xshn    时间: 2020-6-4 07:01
感谢分享,下载学习!!!
作者: 552233    时间: 2020-6-6 02:19
谢谢大佬的分享
作者: 章若楠    时间: 2020-6-7 14:55
支持开源。。。。
作者: 曜辉    时间: 2020-6-7 16:18
就佩服楼主这样专研的精神的说!
作者: 强悍啊    时间: 2022-3-16 17:16

感谢楼主分享




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