易语言递归算法怎么用,求高手给举个简单点的例子
收起
知与谁同
2018-07-17 14:57:33
2705
0
1
条回答
写回答
取消
提交回答
-
递归,简单说是子程序自己调用自己。
例子:
.版本 2
.子程序 左右查找
.参数 左边值, 整数型
.参数 右边值, 整数型
.参数 查找数组, , 数组
.参数 ww, , 参考 可空 数组
.局部变量 i, 整数型
.局部变量 j, 整数型
.局部变量 中间值, 整数型
.如果真 (左边值 ≥ 右边值)
返回 ()
.如果真结束
i = 左边值
j = 右边值
.判断循环首 (j ≠ i)
.判断循环首 (查找数组 [左边值] ≤ 查找数组 [j] 且 i < j)
j = j - 1
.判断循环尾 ()
.判断循环首 (查找数组 [左边值] ≥ 查找数组 [i] 且 i < j)
i = i + 1
.判断循环尾 ()
.如果真 (i < j)
中间值 = 查找数组 [j]
查找数组 [j] = 查找数组 [i]
查找数组 [i] = 中间值
.如果真结束
.判断循环尾 ()
中间值 = 查找数组 [左边值]
查找数组 [左边值] = 查找数组 [i]
查找数组 [i] = 中间值
左右查找 (左边值, i - 1, 查找数组, ) ' 继续处理左边的,这里是个递归的过程
左右查找 (i + 1, 右边值, 查找数组, ) ' 继续处理右边的,这里是个递归的过程
ww = 查找数组
' 以上是快速排序的代码实现,核心所在是递归的过程。
2019-07-17 22:54:40