Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 确定具有相同权重的图边列表,并按其权重的降序浏览这些列表_Algorithm_Sorting_Data Structures_Graph Theory - Fatal编程技术网

Algorithm 确定具有相同权重的图边列表,并按其权重的降序浏览这些列表

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表示边

给定一个完整的无向加权图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表示边列表的权重,卫星数据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