|
发表于 2024-7-5 04:33:47
|
显示全部楼层
福建省泉州市
|
文本_分割文本排序_快速 | 文本型 | | |
要排序的文本 | 文本型 | | | | 行分隔符 | 文本型 | | | | 列分隔符 | 文本型 | | | | 排序的列 | 整数型 | | | | 数据类型 | 整数型 | | | | 排序方向正向 | 逻辑型 | | | | 返回数组 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 排序数组 | 自定义排序数组 | | 0 | 文本数组 | 文本型 | | 0 | 文本数组2 | 文本型 | | 0 | i | 整数型 | | | 结果 | 文本型 | | | 排序变量 | 自定义排序数组 | | 0 | 数据成员数量 | 整数型 | | | 插入位置 | 整数型 | | | 当前数据 | 自定义排序数组 | | | 当前分区成员数 | 整数型 | | | 当前位置 | 整数型 | | | 中间位置 | 整数型 | | | 中间数据 | 自定义排序数组 | | | 如果真 (要排序的文本 = “”)返回 (“”)如果真 (是否为空 (行分隔符 )) 行分隔符 = #换行符 如果真 (是否为空 (列分隔符 )) 列分隔符 = “|”如果真 (是否为空 (排序的列 )) 排序的列 = 1 如果真 (是否为空 (数据类型 )) 数据类型 = 1 如果真 (是否为空 (排序方向正向 )) 排序方向正向 = 真 文本数组 = 分割文本 (要排序的文本, 行分隔符, )计次循环首 (取数组成员数 (文本数组 ), i )文本数组2 = 分割文本 (文本数组 [i ], 列分隔符, )如果真 (排序的列 < 1 或 排序的列 > 取数组成员数 (文本数组2 )) 返回 (“”)判断 (数据类型 = 2 ) 当前数据.整数 = 到整数 (文本数组2 [排序的列 ])判断 (数据类型 = 3 ) 当前数据.小数 = 到小数 (文本数组2 [排序的列 ])判断 (数据类型 = 4 ) 当前数据.日期时间 = 到时间 (文本数组2 [排序的列 ])当前数据.文本 = 文本数组2 [排序的列 ] 数据类型 = 1 当前数据.原数据 = 文本数组 [i]加入成员 (排序数组, 当前数据 )计次循环尾 ()数据成员数量 = 取数组成员数 (排序数组 )计次循环首 (数据成员数量, i )当前位置 = 1 当前分区成员数 = 取数组成员数 (排序变量 )当前数据 = 排序数组 [i ]判断 (i = 1 )插入成员 (排序变量, 1, 当前数据 )到循环尾 ()判断 (数据类型 = 1 且 文本比较 (当前数据.文本, 排序变量 [当前分区成员数 ].文本, 真) ≥ 0 或 数据类型 = 2 且 当前数据.整数 ≥ 排序变量 [当前分区成员数 ].整数 或 数据类型 = 3 且 当前数据.小数 ≥ 排序变量 [当前分区成员数 ].小数 或 数据类型 = 4 且 当前数据.日期时间 > 排序变量 [当前分区成员数 ].日期时间 )插入成员 (排序变量, 当前分区成员数 + 1, 当前数据 )到循环尾 ()判断 (数据类型 = 1 且 文本比较 (当前数据.文本, 排序变量 [1 ].文本, 真) ≤ 0 或 数据类型 = 2 且 当前数据.整数 ≤ 排序变量 [1 ].整数 或 数据类型 = 3 且 当前数据.小数 ≤ 排序变量 [1 ].小数 或 数据类型 = 4 且 当前数据.日期时间 ≤ 排序变量 [1 ].日期时间 )插入成员 (排序变量, 1, 当前数据 )到循环尾 ()判断循环首 (当前位置 < 当前分区成员数 - 1 )中间位置 = (当前位置 + 当前分区成员数 ) \ 2 中间数据 = 排序变量 [中间位置 ]如果真 (数据类型 = 1 且 当前数据.文本 = 中间数据.文本 或 数据类型 = 2 且 当前数据.整数 = 中间数据.整数 或 数据类型 = 3 且 当前数据.小数 = 中间数据.小数 或 数据类型 = 4 且 当前数据.日期时间 = 中间数据.日期时间 )当前位置 = 中间位置 跳出循环 ()如果 (数据类型 = 1 且 当前数据.文本 < 中间数据.文本 或 数据类型 = 2 且 当前数据.整数 < 中间数据.整数 或 数据类型 = 3 且 当前数据.小数 < 中间数据.小数 或 数据类型 = 4 且 当前数据.日期时间 < 中间数据.日期时间 )当前分区成员数 = 中间位置 当前位置 = 中间位置 判断循环尾 ()插入位置 = 当前位置 + 1 插入成员 (排序变量, 插入位置, 当前数据 )计次循环尾 ()如果真 (是否为空 (返回数组 ) = 假)重定义数组 (返回数组, 假, 0 )如果 (排序方向正向 )计次循环首 (取数组成员数 (排序变量 ), i )结果 = 结果 + 排序变量 [i ].原数据 + 选择 (取数组成员数 (排序数组 ) = i, “”, 行分隔符 )如果真 (是否为空 (返回数组 ) = 假)加入成员 (返回数组, 排序变量 [i ].原数据 )计次循环尾 ()计次循环首 (取数组成员数 (排序变量 ), i )结果 = 结果 + 排序变量 [数据成员数量 - i + 1 ].原数据 + 选择 (取数组成员数 (排序数组 ) = i, “”, 行分隔符 )如果真 (是否为空 (返回数组 ) = 假)加入成员 (返回数组, 排序变量 [i ].原数据 )计次循环尾 ()返回 (结果 )
源码里看不出来什么原因导致的
测试证实bug存在
需要再逐步检查才能确定位置
|
|