Algorithm 确定具有相同权重的图边列表,并按其权重的降序浏览这些列表
给定一个完整的无向加权图G=X,E,使得,|X |=n和| E |=|X | ^2-|X |/2和边可能包含重复的权重值, 确定共享相同权重并按其权重降序列出的边列表L_i的数据结构是什么,例如,delta_i: 必须验证以下属性:Algorithm 确定具有相同权重的图边列表,并按其权重的降序浏览这些列表,algorithm,sorting,data-structures,graph-theory,Algorithm,Sorting,Data Structures,Graph Theory,给定一个完整的无向加权图G=X,E,使得,|X |=n和| E |=|X | ^2-|X |/2和边可能包含重复的权重值, 确定共享相同权重并按其权重降序列出的边列表L_i的数据结构是什么,例如,delta_i: 必须验证以下属性: delta_1 > delta_2 > ...> delta_m L_1 U L_2 U...U L_m=E 注:m是唯一重量值的数量,单位为G 一种简单的方法是使用平衡二叉搜索树,其中每个节点至少包含两个信息: 关键字段delta_i表示边
delta_1 > delta_2 > ...> delta_m
L_1 U L_2 U...U L_m=E
注:m是唯一重量值的数量,单位为G
一种简单的方法是使用平衡二叉搜索树,其中每个节点至少包含两个信息:
关键字段delta_i表示边列表的权重,卫星数据L_i表示具有相同权重的边链接列表的头部。
G的这种表示法需要在最坏的情况下使用| X | ^2-| X |/2个树节点和精确的| X | ^2-| X |/2个边对象。我们添加了平衡信息和父子指针来维护树,这会消耗内存空间
因此,我的问题是如何有效地表示这些m个边列表,并按其权重的降序浏览它们。在java中,您可以使用SortedMap,其中SortedMap的双键是该列表中边的权重。感谢您的回复。SortedMap实现是否为ContainesKey、get、put和remove操作提供了保证的log2m时间成本,如TreeMap类。将对象添加到SortedMap时,对象的键是否与SortedMap中的所有键值进行比较,在最坏的情况下,该键值采用Om。元素如何排序SortedMap中的排序算法。所有这些问题都很重要,因此我可以提高算法的时间和空间复杂性SortedMap是TreeMap实现的接口
delta_1 > delta_2 > ...> delta_m
L_1 U L_2 U...U L_m=E