def hhpx(self, tran): # 混合排序 dist = 0 res = 0 defSet = set(tran.getvDefList()) for item in reversed(self.tranlist): dist += 1 defSet = defSet - set(item.getvDefList()) # 消去迁移中已有的定义变量 if len(defSet) == 0: # 不存在 没在序列中找到定义的 def集合 时,break break res += config.distMap(dist) * config.numMap( len(defSet & set(item.getvUseList()))) # 距离的映射函数 * 数量的映射函数 return dist
def hhpx(self, tran): # 混合排序#不是看最近距离,看每个重合变量的距离 dist = 0 defSet = set(tran.getvDefList()) for item in reversed(self.tranlist): defSet = defSet - set(item.getvDefList()) if len(defSet) == 0: # 不存在 没在序列中找到定义的 def集合 时,break break for item in reversed(self.tranlist): dist += 1 if len(set(defSet) & set(item.getvUseList())) != 0: break res = config.distMap(dist) * config.numMap(self.achcdpx(tran)) # 距离的映射函数 * 数量的映射函数 return res