觅风论坛
标题:
易语言实现框架排序器举例,自定义数据的快速排序源码
[打印本页]
作者:
小一
时间:
2023-12-26 09:48
标题:
易语言实现框架排序器举例,自定义数据的快速排序源码
底层算法都已经写好了,基本数据类型的排序器也有了,缺少一个自定义数据类型,
由于我没有骚操作,教大家如何老老实实对【自定义数据】进行排序。
1、私有成员的类型
2、重构你的【比较】函数,我这里举了个例子,是先对参数二排序,再对参数三排序。
.版本 2
.程序集 排序器_自定义数据, 抽象排序器, , 一定得填上基类
.程序集变量 m_data, 自定义数据, , "0"
.程序集变量 m_save, 自定义数据
.子程序 _初始化, , , 当基于本类的对象被创建后,此方法会被自动调用
.子程序 _销毁, , , 当基于本类的对象被销毁前,此方法会被自动调用
.子程序 排序, , 公开
.参数 p_排序算法实现, 抽象排序算法, 参考, 本参数要求提供"抽象排序算法"的实现类
.参数 p_欲排序的数组, 自定义数据, 参考 数组
.参数 p_升序排列, 逻辑型
.局部变量 l_p2int_this, 整数型
.局部变量 l_this, 抽象排序器
l_p2int_this = 指针到整数 (类自身 ())
Exchange (l_p2int_this, l_this, p_欲排序的数组, m_data)
.如果 (p_升序排列)
p_排序算法实现.p_升序排列 (取数组成员数 (m_data), l_this)
.否则
p_排序算法实现.p_降序排列 (取数组成员数 (m_data), l_this)
.如果结束
Exchange (l_p2int_this, l_this, p_欲排序的数组, m_data)
.子程序 去重复, , 公开
.参数 p_排序算法实现, 抽象排序算法, 参考, 本参数要求提供"抽象排序算法"的实现类
.参数 p_欲排序的数组, 自定义数据, 参考 数组
.局部变量 l_p2int_this, 整数型
.局部变量 l_this, 抽象排序器
l_p2int_this = 指针到整数 (类自身 ())
Exchange (l_p2int_this, l_this, p_欲排序的数组, m_data)
p_排序算法实现.p_去重复 (取数组成员数 (m_data), l_this)
Exchange (l_p2int_this, l_this, p_欲排序的数组, m_data)
.子程序 比较, 整数型, 公开
.参数 p_data1, 自定义数据
.参数 p_data2, 自定义数据
.判断开始 (p_data1.参数二 > p_data2.参数二 或 p_data1.参数二 = p_data2.参数二 且 p_data1.参数三 > p_data2.参数三)
返回 (1)
.判断 (p_data1.参数二 = p_data2.参数二 且 p_data1.参数三 = p_data2.参数三)
返回 (0)
.默认
返回 (-1)
.判断结束
.子程序 p_比较成员, 整数型, 公开, 已经重写此方法,本方法仅供排序算法自动调用。返回说明:比较值1>比较值2,返回1;比较值1=比较值2,返回0;比较值1<比较值2,返回-1
.参数 被比较的成员下标, 整数型, , 即前一比较值
.参数 作用比较的成员下标, 整数型, , 即后一比较值
返回 (比较 (m_data [被比较的成员下标], m_data [作用比较的成员下标]))
.子程序 p_交换成员, , 公开, 已经重写此方法,并且子类必须重写此方法,本方法仅供排序算法自动调用。使用说明:本命令用于强制交换对象
.参数 欲交换的成员下标, 整数型
.参数 作交换的成员下标, 整数型
ASM_交换_变量交变量 (m_data [欲交换的成员下标], m_data [作交换的成员下标])
.子程序 p_覆写成员, , 公开, 本命令用于覆写成员
.参数 被覆写的成员, 整数型
m_data [被覆写的成员] = m_save
.子程序 p_临时保存成员, , 公开, 本命令用于保存临时成员
.参数 被保存的成员, 整数型
m_save = m_data [被保存的成员]
.子程序 p_比较临时成员, 整数型, 公开, 本命令用于比较临时成员和其他成员的大小
.参数 欲比较的成员下标, 整数型
返回 (比较 (m_data [欲比较的成员下标], m_save))
.子程序 p_删除成员, , 公开, 本命令用于去重复中删除成员
.参数 欲删除的成员下标, 整数型
删除成员 (m_data, 欲删除的成员下标, )
复制代码
.版本 2
.支持库 spec
.局部变量 局_排序器, 排序器_自定义数据
.局部变量 局_数据, 自定义数据, , "0"
.局部变量 i, 整数型
.局部变量 n, 整数型
置随机数种子 ()
n = 100
重定义数组 (局_数据, 假, n)
.计次循环首 (n, i)
局_数据 <i>.参数一 = “数据” + 到文本 (i)
局_数据 <i>.参数二 = 取随机数 (, ) ÷ 32767
局_数据 <i>.参数三 = 取随机数 (, )
.计次循环尾 ()
局_排序器.排序 (快速排序_ASM, 局_数据, 真) ' 先按参数二排序,再按参数三
调试输出 (“排序后”)
.计次循环首 (n, i)
调试输出 (局_数据 <i>.参数一, 局_数据 <i>.参数二, 局_数据 <i>.参数三)
.计次循环尾 ()
复制代码
作者:
光光
时间:
2023-12-26 20:22
谢谢分享好人有好报6666666
作者:
卧槽你妹
时间:
2023-12-27 06:57
阿斯蒂芬撒反对
作者:
zzq6689@qq.com
时间:
2023-12-27 17:31
提示:
作者被禁止或删除 内容自动屏蔽
作者:
zzq6689@qq.com
时间:
2023-12-28 04:05
提示:
作者被禁止或删除 内容自动屏蔽
作者:
文杰
时间:
2023-12-28 14:40
碉堡了!
作者:
阿运
时间:
2023-12-28 20:12
我知道错了,感谢大神分享
作者:
光光
时间:
2023-12-29 01:44
还不错觅风论坛欢迎你
作者:
gwm231
时间:
2023-12-29 07:16
的法国风格化规范化
作者:
wz19981007
时间:
2023-12-29 12:48
看看看看看看看看看看看看
作者:
行走的蜗牛
时间:
2023-12-29 18:21
学习中,看看代码啥情况
作者:
无聊玩玩
时间:
2023-12-29 22:58
谢谢分享好人有好报6666666
作者:
1811581892
时间:
2023-12-30 03:36
撒大苏打阿斯顿阿斯顿
作者:
带小叶
时间:
2023-12-30 08:14
学习下 学习下 学习下
作者:
无聊玩玩
时间:
2023-12-30 12:51
必须支持。。。。。。。
作者:
凌空
时间:
2023-12-30 17:29
感觉不错
作者:
斯蒂芬
时间:
2023-12-31 06:14
多上传一点源码
作者:
hy507669673
时间:
2023-12-31 18:59
这个资源我一直想要
作者:
a491198538
时间:
2024-1-1 07:44
想学唉,可惜现在的我啥都不会
作者:
wfagf
时间:
2024-1-1 20:29
提示:
作者被禁止或删除 内容自动屏蔽
作者:
a491198538
时间:
2024-1-2 09:14
支持你们一下下哈
作者:
你大爷
时间:
2024-1-2 16:40
觅风论坛需要你
作者:
哈哈哈哈
时间:
2024-1-3 00:07
看看看看看看看看看看看看
作者:
你大爷
时间:
2024-1-3 07:34
支持!!!!!!
作者:
tzq78789
时间:
2024-1-3 15:00
还是看不懂,复杂
作者:
tzq78789
时间:
2024-1-3 22:27
赞一个!
作者:
sxy19931021
时间:
2024-1-4 10:25
提示:
作者被禁止或删除 内容自动屏蔽
作者:
卧槽你妹
时间:
2024-1-4 22:23
很给力。。。。很喜欢
作者:
无名使者
时间:
2024-1-5 10:21
还是看不懂,复杂
作者:
霸王喝粥
时间:
2024-1-5 22:19
支持你们一下下哈
作者:
tzq78789
时间:
2024-1-6 10:17
支持!!!!前排!!!!
作者:
tzq78789
时间:
2024-1-6 20:15
好东西,一定要进行学习
作者:
赵金龙
时间:
2024-1-7 06:13
这就是传说中的好资源吗?赶紧看看去!
作者:
fghjgfkjhgk
时间:
2024-1-7 16:11
很给力。。。。很喜欢
作者:
赵金龙
时间:
2024-1-8 02:09
支持你们一下下哈
作者:
企鹅6655
时间:
2024-1-8 12:07
必须支持。。。。。。。
作者:
360403967
时间:
2024-1-8 22:02
来瞧瞧的,呵呵
作者:
sxy19931021
时间:
2024-1-9 07:56
提示:
作者被禁止或删除 内容自动屏蔽
作者:
360403967
时间:
2024-1-9 17:51
不错不错 支持下
作者:
何海银
时间:
2024-1-10 03:45
不错!顶LZ
作者:
qq1423845446
时间:
2024-1-10 13:40
感觉不错
作者:
斯蒂芬
时间:
2024-1-10 18:02
多上传一点源码
作者:
卧槽你妹
时间:
2024-1-10 22:25
谢谢楼主,对了新人问下,这个也要15字吗
作者:
qq1124824221
时间:
2024-1-11 02:47
来瞧瞧的,呵呵
作者:
任逍遥
时间:
2024-1-11 07:10
支持!!!!!!
作者:
你大爷
时间:
2024-1-11 11:32
非常不错,感谢分享!
作者:
舞步
时间:
2024-1-11 13:50
666666666666666666666666
作者:
haobaba45
时间:
2024-1-11 16:07
来瞧瞧的,呵呵
作者:
微风
时间:
2024-1-11 18:25
人设人阿松大
作者:
li123
时间:
2024-1-11 20:42
这个好好支持一下
作者:
骑着蚂蚁兜风
时间:
2024-1-11 23:00
期待中......
作者:
luoyunjie
时间:
2024-1-12 02:28
提示:
作者被禁止或删除 内容自动屏蔽
作者:
sdf
时间:
2024-1-12 05:55
666学习了!!
作者:
磊磊
时间:
2024-1-12 09:23
谢谢楼主,,,收藏ing
作者:
luoyunjie
时间:
2024-1-12 12:50
提示:
作者被禁止或删除 内容自动屏蔽
作者:
qq1354596367
时间:
2024-1-12 16:18
不错哦 喜欢 嘿嘿
欢迎光临 觅风论坛 (https://www.eyyba.com/)
Powered by Discuz! X3.4