在实际应用过程中,需要对自定义类型的数组成员进行排序,使用自带的数组排序并不能达到效果,今天就来介绍一种可以对自定义数据类型的数组进行快速排序的方法。
注意事项:满足自定义数据类型的数组排序,需要指定你的自定义数据类型某个成员为整数型,在排序时将以这个整数型的成员为判断排序的依据
.版本 2
.数据类型 自定义类型
.成员 句柄, 整数型
.成员 序号, 整数型, , , 判断排序的依据
.成员 名称, 文本型
1、首先按顺序填充你的自定义类型的数组,实际应用过程中,可以按照你的实际情况来填充即可
.版本 2
.子程序 填充初始数据
.局部变量 i, 整数型
.局部变量 临时, 自定义类型
.计次循环首 (10, i)
临时.句柄 = 1000 + i
临时.序号 = i
临时.名称 = “名称_” + 到文本 (i)
加入成员 (集_数组, 临时)
.计次循环尾 ()
2、对按顺序填充的自定义数据类型数组数据进行打乱操作,实际应用中不需要打乱操作,这里只是为了方便演示,来手动进行打乱
.版本 2
.子程序 打乱初始数据顺序
.局部变量 i, 整数型
重定义数组 (集_结果, 假, 0)
.计次循环首 (取数组成员数 (集_数组), i)
加入成员 (集_结果, 随机排序自定义 ())
.计次循环尾 ()
3、采用插入排序的方式对打乱顺序的自定义数据类型数组,按照成员序列进行插入排序
.版本 2
.支持库 spec
.子程序 插入排序自定义
.参数 数组, 自定义类型, 可空 数组
.局部变量 i, 整数型
.局部变量 temp, 整数型
.局部变量 po, 整数型
.局部变量 k, 整数型
.局部变量 start, 整数型
.局部变量 end, 整数型
.局部变量 temp_data, 自定义类型
start = 取启动时间 ()
.计次循环首 (取数组成员数 (数组) - 1, i)
temp = 数组 [i].序号
temp_data = 数组 [i]
po = i
.变量循环首 (i + 1, 取数组成员数 (数组), 1, k)
.如果真 (数组 [k].序号 < temp)
temp = 数组 [k].序号
temp_data = 数组 [k]
po = k
.如果真结束
.变量循环尾 ()
数组 [po] = 数组 [i]
数组 [i] = temp_data
.计次循环尾 ()
end = 取启动时间 ()
调试输出 (end - start)
如需帮助请联系客服
原创文章,作者:神经蛙,如若转载,请注明出处:https://www.waoyou.com/778.html