@1185384801 大佬造的排序模板模块,很实用。
底层算法都已经写好了,基本数据类型的排序器也有了,缺少一个自定义数据类型,
由于我没有骚操作,教大家如何老老实实对【自定义数据】进行排序。
构造一个模板类,改几个参数即可
窗口程序集名 | 保 留 | 保 留 | 备 注 | 排序器_自定义数据, 抽象排序器, , 一定得填上基类 | | | | 变量名 | 类 型 | 数组 | 备 注 | 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_比较成员 | 整数型 | | |
被比较的成员下标 | 整数型 | | | | 作用比较的成员下标 | 整数型 | | | | 返回 (比较 (m_data [被比较的成员下标 ], m_data [作用比较的成员下标 ])) |
p_交换成员 | | | |
欲交换的成员下标 | 整数型 | | | | 作交换的成员下标 | 整数型 | | | | ASM_交换_变量交变量 (m_data [欲交换的成员下标 ], m_data [作交换的成员下标 ])m_data [被覆写的成员 ] = m_save m_save = m_data [被保存的成员 ]返回 (比较 (m_data [欲比较的成员下标 ], m_save )) 删除成员 (m_data, 欲删除的成员下标, )
需要改的:
1、私有成员的类型
2、重构你的【比较】函数,我这里举了个例子,是先对参数二排序,再对参数三排序。
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_排序器 | 排序器_自定义数据 | | | 局_数据 | 自定义数据 | | 0 | i | 整数型 | | | n | 整数型 | | | 置随机数种子 ()n = 100 重定义数组 (局_数据, 假, n )计次循环首 (n, i )局_数据 [i ].参数一 = “数据” + 到文本 (i )局_数据 [i ].参数二 = 取随机数 (, ) ÷ 32767 局_数据 [i ].参数三 = 取随机数 (, )计次循环尾 ()局_排序器. 排序 (快速排序_ASM, 局_数据, 真) 调试输出 (“排序后”)计次循环首 (n, i )调试输出 (局_数据 [i ].参数一, 局_数据 [i ].参数二, 局_数据 [i ].参数三 )计次循环尾 ()
自定义数据的排序.zip
(27.78 KB, 下载次数: 64)
|