设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 2621|回复: 1
收起左侧

易语言实现比较两个字节集数据的大小并对字节集数组进行大小排序的方法

[复制链接]
发表于 2018-12-29 15:10:20 | 显示全部楼层 |阅读模式
字节集数据比较大小的方法
比较方法:
被比较的字节集A和B,长度选最长的进行计次循环。
A和B若尝试越界访问则必须经过判断返回0,否则会报错。
先比较A和B的第1字节、相同的则比较下1字节,直到不同为止,全部相同返回等于。
A和B若数据全为0(空字符),长度不一致按长度判断,否则返回等于。


  1. .版本 2
  2. .支持库 spec

  3. .程序集 程序集1

  4. .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码


  5. _临时子程序 ()  ' 在初始化代码执行完毕后调用测试代码
  6. 返回 (0)  ' 可以根据您的需要返回任意数值

  7. .子程序 _临时子程序
  8. .局部变量 字节集数组, 字节集, , "10"
  9. .局部变量 计数, 整数型

  10. ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
  11. 置随机数种子 ()
  12. .计次循环首 (10, 计数)
  13.     字节集数组 [计数] = 字节集_取随机 (取随机数 (1, 10))
  14. .计次循环尾 ()
  15. 字节集_数组排序 (字节集数组, 真)
  16. 调试输出 (字节集数组)

  17. .子程序 字节集_取随机, 字节集, , 返回一个由随机数值的乱码字节集数据,可指定值的返回,使用前请使用“置随机数种子”命令为随机数生成器初始化一个种子值。
  18. .参数 字节长度, 整数型
  19. .参数 最小值, 字节型, 可空, 默认0
  20. .参数 最大值, 字节型, 可空, 默认255
  21. .局部变量 字节集, 字节集
  22. .局部变量 计数, 整数型

  23. .如果真 (是否为空 (最大值))
  24.     最大值 = 255
  25. .如果真结束
  26. 字节集 = 取空白字节集 (字节长度)
  27. .如果真 (最小值 = 0 且 最大值 = 0)
  28.     返回 (字节集)
  29. .如果真结束
  30. .计次循环首 (字节长度, 计数)
  31.     字节集 [计数] = 取随机数 (最小值, 最大值)
  32. .计次循环尾 ()
  33. 返回 (字节集)


  34. .子程序 字节集_大小比较, 字节型, 公开, A等于B返回0 A小于B返回1 A大于B返回2 全部为0时按长度比较
  35. .参数 字节集A, 字节集
  36. .参数 字节集B, 字节集
  37. .局部变量 A长度, 整数型
  38. .局部变量 B长度, 整数型
  39. .局部变量 计数, 整数型
  40. .局部变量 A代码, 字节型
  41. .局部变量 B代码, 字节型

  42. A长度 = 取字节集长度 (字节集A)
  43. B长度 = 取字节集长度 (字节集B)
  44. .计次循环首 (选择 (A长度 > B长度, A长度, B长度), 计数)
  45.     .如果 (计数 ≤ A长度)
  46.         A代码 = 字节集A [计数]
  47.     .否则
  48.         A代码 = 0
  49.     .如果结束
  50.     .如果 (计数 ≤ B长度)
  51.         B代码 = 字节集B [计数]
  52.     .否则
  53.         B代码 = 0
  54.     .如果结束
  55.     .如果真 (A代码 ≠ B代码)
  56.         返回 (选择 (A代码 < B代码, 1, 2))
  57.     .如果真结束

  58. .计次循环尾 ()
  59. .如果真 (A长度 = B长度)
  60.     返回 (0)
  61. .如果真结束
  62. 返回 (选择 (A长度 < B长度, 1, 2))


  63. .子程序 字节集_数组排序, , 公开
  64. .参数 字节集数组, 字节集, 参考 数组
  65. .参数 从小到大, 逻辑型, 可空
  66. .局部变量 返回值, 字节集, , "0"
  67. .局部变量 位置, 整数型
  68. .局部变量 最大字节集, 字节集
  69. .局部变量 计数, 整数型
  70. .局部变量 成员数, 整数型

  71. .循环判断首 ()
  72.     最大字节集 = {  }
  73.     成员数 = 取数组成员数 (字节集数组)
  74.     .计次循环首 (成员数, 计数)
  75.         .如果真 (字节集_大小比较 (字节集数组 [计数], 最大字节集) = 2)
  76.             最大字节集 = 字节集数组 [计数]
  77.             位置 = 计数
  78.         .如果真结束

  79.     .计次循环尾 ()
  80.     加入成员 (返回值, 最大字节集)
  81.     删除成员 (字节集数组, 位置, 1)
  82. .循环判断尾 (成员数 - 1 > 0)
  83. .如果 (从小到大)
  84.     成员数 = 取数组成员数 (返回值)
  85.     .计次循环首 (成员数, 计数)
  86.         加入成员 (字节集数组, 返回值 [成员数 - 计数 + 1])
  87.     .计次循环尾 ()
  88. .否则
  89.     字节集数组 = 返回值
  90. .如果结束

复制代码


相关帖子

发表于 2018-12-30 22:52:13 | 显示全部楼层
这又是什么鬼
您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-4-25 04:41 , Processed in 1.236071 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表