如何使用冒泡排序对树图进行排序?

时间:2011-01-06 07:36:07

标签: sorting map treemap bubble-sort

27527-683
27525-1179
27525-1571
27525-1813
27525-4911
27526-1303
27526-3641
27525-3989
27525-4083
27525-4670
27526-4102
27526-558
27527-2411
27527-4342

这是在地图中声明为字符串的键列表
然后我想按升序排序。
如何在地图中使用气泡排序方法?
其中键的值是列表。 为了得到:

27525-1179
27525-1571
27525-1813
27525-3989
27525-4083
27525-4670
27525-4911
27526-558
27526-1303
27526-3641
27526-4102
27527-683
27527-2411
27527-4342

2 个答案:

答案 0 :(得分:1)

您应该只能在树上执行有序遍历。如果你坚持这就是你要做的事。

keyList = yourTreeMap.getKeys();
for(i = keyList.length-1; i > 0; i--)
    for(j = 0; j < i; j++)
       if (keyList[j] > keyList[j+1]) keyList.swap(j, j+1);

由于你没有指定lnaguage,我提出了psuedocode。

答案 1 :(得分:0)

一般情况下,您只需使用与正常相同的冒泡排序算法,这只是您在此处调整的比较条件,以查看键和值以确定大于什么,即首先比较键和它们是否' re等于然后比较值如果键不匹配然后使用值的差异来获得交换结果或不交换。如果你在真实场景中使用它,那么冒泡排序效率很差。

Jon在我之前得到了这个帖子,但基本上他写的内容看起来是正确的,除了你想要嵌套循环中if的复杂条件,比如

if(key1<key2)
    keyList.swap(i,j)
else if(keyList[key1]<keyList[key2])
    keyList.swap(i,j)

当然,他还说明了如何实际提取/使用这些键/值将取决于语言,而问题或标签中缺少这些语言。