算法导论20.2-1

来源:互联网 发布:org.apache.spark.sql 编辑:程序博客网 时间:2024/05/22 13:06
  • 问题描述
    写出PROTO-vEB-MAXIMUM和PROTO-vEB-PREDECESSOR过程的伪代码
  • 问题求解

PROTO-vEB-MAXIMUM(V)
注:返回V中的最大元素,或NIL

if V.u == 2    if V.A[1] == 1        return 1    elseif V.A[0] == 1        return 0    else return NILelse max-cluster=PROTO-vEB-MAXIMUM(V.summary)    if max-cluster == NIL        return NIL    else offset=PROTO-vEB-MAXIMUM(V.cluster[max-cluster])        return index(max-cluster,offset)

PROTO-vEB-PREDECESSOR(V,x)
注:返回V中小于x的最大元素,或NIL

if V.u == 2    if x == 1 and V.A[0] == 1        return 0    else return NILelse offset=PROTO-vEB-PREDECESSOR(V.cluster[high(x)],low(x))    if offset != NIL        return index(high(x),offset)    else prede-cluster=PROTO-vEB-PREDECESSOR(V.summary,high(x))    if prede-cluster == NIL        return NIL    else offset=PROTO-vEB-MAXIMUM(V.cluster[prede-cluster])        return index(prede-cluster,offset)