|
板凳

楼主 |
发表于 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 )
|
|