0 1 2
分享排行榜
修正错误贡献榜
已审核词条 未审核词条
子程序名返回值类型公开备 注
数组_排序 二分法排序.只能对文本数组进行排序,整数数组请用核心支持库的.
参数名类 型参考可空数组备 注
要排序的数组文本型
排序方式字节型可空,默认为0 0=升序排序 1=降序排序
区分大小写逻辑型可空,默认“真”。真=区分大小写,假=不区分
变量名类 型静态数组备 注
N整数型 
排序数组文本型"0"
成员数量整数型 
高位整数型 
低位整数型 
中间位整数型 
比较结果整数型感谢会员 落雪 提供代码
复制数组 (排序数组, 要排序的数组)
清除数组 (要排序的数组)
如果真 (是否为空 (区分大小写))
区分大小写 = 真

计次循环首 (取数组成员数 (排序数组), N)
判断 (成员数量 = 0)
插入成员 (要排序的数组, 1, 排序数组 [N])


高位 = 成员数量
低位 = 1
中间位 (高位 + 低位) \ 2
' ; API_lstrcmp 通过比较ASCII码进行文本的排序,速度快
判断 (区分大小写 = )
比较结果 = lstrcmpA (到大写 (排序数组 [N]), 到大写 (要排序的数组 [成员数量])) ' 不区分就都算大写好了.因为在ACSII码中,大小写字母都是挨着的,所以不会出现"夹"在中间的字符.
比较结果 = lstrcmpA (排序数组 [N], 要排序的数组 [成员数量])

判断 (比较结果 ≥ 0)
插入成员 (要排序的数组, 成员数量 + 1, 排序数组 [N])
判断 (lstrcmpA (排序数组 [N], 要排序的数组 [1]) ≤ 0)
插入成员 (要排序的数组, 1, 排序数组 [N])
判断循环首 (高位 - 低位 > 1)
如果真 (排序数组 [N] = 要排序的数组 [中间位])
跳出循环 ()
如果 (lstrcmpA (排序数组 [N], 要排序的数组 [中间位]) < 0)
高位 = 中间位
低位 = 中间位
中间位 (高位 + 低位) \ 2
判断循环尾 ()
判断 (lstrcmpA (排序数组 [N], 要排序的数组 [中间位]) ≤ 0)
插入成员 (要排序的数组, 中间位, 排序数组 [N])
插入成员 (要排序的数组, 中间位 + 1, 排序数组 [N])


成员数量 = 取数组成员数 (要排序的数组)
计次循环尾 ()
如果真 (排序方式 = 1)
数组_反转 (要排序的数组)


词条作者信息
项目部004 -  一个月只活跃几分钟
使用例程
评论列表   发现违规评论、广告、刷屏,请点击举报(有奖)
2024-10-23 21:10jiangqi360
试试看,先感谢一个!
  • Copyright © ijingyi.com All Rights Reserved.