|
楼主 |
发表于 2020-11-14 08:38:58
|
显示全部楼层
陕西省渭南市
对文本分割进行了改进.使用指针读写内存.能快不少.
|
数组_排序_多列 | | | |
要排序的数组 | 文本型 | | | | 排序方式 | 字节型 | | | | 区分大小写 | 逻辑型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 新添加成员 | 整数型 | | | 排序数组 | 文本型 | | 0 | 成员数量 | 整数型 | | | 高位 | 整数型 | | | 低位 | 整数型 | | | 中间位 | 整数型 | | | 比较结果 | 整数型 | | | 复制数组 (排序数组, 要排序的数组 )清除数组 (要排序的数组 )如果真 (是否为空 (区分大小写 ) = 真)区分大小写 = 真 计次循环首 (取数组成员数 (排序数组 ), 新添加成员 )判断 (成员数量 = 0 )插入成员 (要排序的数组, 1, 排序数组 [新添加成员 ])高位 = 成员数量 低位 = 1 中间位 = (高位 + 低位 ) \ 2 比较结果 = 多列比较 (排序数组 [新添加成员 ], 要排序的数组 [成员数量 ], 区分大小写 )如果 (比较结果 ≥ 0 )插入成员 (要排序的数组, 成员数量 + 1, 排序数组 [新添加成员 ])如果 (多列比较 (排序数组 [新添加成员 ], 要排序的数组 [1 ], 区分大小写 ) ≤ 0 )插入成员 (要排序的数组, 1, 排序数组 [新添加成员 ])判断循环首 (高位 - 低位 > 1 )如果真 (排序数组 [新添加成员 ] = 要排序的数组 [中间位 ])跳出循环 ()如果 (多列比较 (排序数组 [新添加成员 ], 要排序的数组 [中间位 ], 区分大小写 ) < 0 )高位 = 中间位 低位 = 中间位 中间位 = (高位 + 低位) \ 2判断循环尾 ()如果 (多列比较 (排序数组 [新添加成员 ], 要排序的数组 [中间位 ], 区分大小写 ) ≤ 0 )插入成员 (要排序的数组, 中间位, 排序数组 [新添加成员 ])插入成员 (要排序的数组, 中间位 + 1, 排序数组 [新添加成员 ])成员数量 = 取数组成员数 (要排序的数组)计次循环尾 ()如果真 (排序方式 = 1 )数组_反转_ (要排序的数组 )|
多列比较 | 整数型 | | |
参_文本1 | 文本型 | | | | 参_文本2 | 文本型 | | | | 区别大小写 | 逻辑型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 比较数组1 | 文本型 | | 0 | 比较数组2 | 文本型 | | 0 | 计数器 | 整数型 | | | 返回值 | 整数型 | | | 整数1 | 整数型 | | | 整数2 | 整数型 | | | 如果真 (文本比较 (参_文本1, 参_文本2, 区别大小写 ) = 0 )返回 (0 ) 重定义数组 (比较数组1, 假, 0 )重定义数组 (比较数组2, 假, 0 ) 文本属性分割 (参_文本1, 比较数组1 )文本属性分割 (参_文本2, 比较数组2 )计次循环首 (取数组成员数 (比较数组1 ), 计数器 ) 如果真 (计数器 > 取数组成员数 (比较数组2 )) 返回 (1 )整数1 = 到整数 (比较数组1 [计数器])整数2 = 到整数 (比较数组2 [计数器 ]) 如果 (整数1 ≠ 0 且 整数2 ≠ 0 )如果 (整数1 < 整数2 )返回值 = -1 返回值 = 1 返回值 = 文本比较 (比较数组1 [计数器 ], 比较数组2 [计数器 ], 区别大小写 ) 如果真 (返回值 = 0 )到循环尾 () 返回 (返回值 )计次循环尾 () 返回 (-1 )变量名 | 类 型 | 静态 | 数组 | 备 注 | 成员数量 | 整数型 | | | 计数器 | 整数型 | | |
成员数量 = 取数组成员数 (反转的数组 )计次循环首 (成员数量 \ 2, 计数器 )交换变量 (反转的数组 [计数器 ], 反转的数组 [成员数量 - 计数器 + 1 ])计次循环尾 ()变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_内容指针 | 整数型 | | | 局_内存句柄 | 整数型 | | | 局_内容地址 | 整数型 | | | 局_数字位数 | 整数型 | | | 重定义数组 (参_文本数组, 假, 0 )局_内容地址 = 取变量数据地址 (参_文本 )局_内容指针 = 0 局_内存句柄 = 申请内存 (取文本长度 (参_文本 ), )判断循环首 (局_内容指针 < 取文本长度 (参_文本 )) 局_数字位数 = 0 如果真 (指针到字节 (局_内容地址 + 局_内容指针 ) > 127 ) 写到内存 (指针到字节集 (局_内容地址 + 局_内容指针, 2 ) + { 0 }, 局_内存句柄, 3 )加入成员 (参_文本数组, 指针到文本 (局_内存句柄 )) 局_内容指针 = 局_内容指针 + 2 到循环尾 ()判断循环首 (指针到字节 (局_内容地址 + 局_内容指针 ) > 47 且 指针到字节 (局_内容地址 + 局_内容指针 ) < 58 ) 写到内存 (指针到字节集 (局_内容地址 + 局_内容指针, 1 ), 局_内存句柄 + 局_数字位数, 1 )局_数字位数 = 局_数字位数 + 1 局_内容指针 = 局_内容指针 + 1 判断循环尾 ()如果真 (局_数字位数 > 0 ) 写到内存 ({ 0 }, 局_内存句柄 + 局_数字位数, 1 )加入成员 (参_文本数组, 指针到文本 (局_内存句柄 )) 到循环尾 () 写到内存 (指针到字节集 (局_内容地址 + 局_内容指针, 1 ) + { 0 }, 局_内存句柄, 2 )加入成员 (参_文本数组, 指针到文本 (局_内存句柄 )) 局_内容指针 = 局_内容指针 + 1 判断循环尾 ()释放内存 (局_内存句柄 )置入代码 ({ 139, 69, 8, 139, 0, 201, 194, 4, 0 })返回 (0 )
|
|