在有向图中,我想要一个O(n + m)算法对邻接列表中的列表进行排序,以便每个列表中的顶点名称按递增顺序排序。 我能想到的唯一办法是在每个列表上执行插入排序,但是这绝对不会在O(n + m)中运行。有人可以帮我弄这个吗? 谢谢按递增顺序在邻接列表中排序列表
-1
A
回答
0
我不相信这是可能的。您对O(n + m)时间的请求表明您正在寻找图表的topological sort。但是,虽然这将对图进行排序,但它不允许按照另一个度量(字符串节点名称)对节点/边进行排序所需的比较。
也许你没有明确说明问题?
0
我还没有足够的积分通过评论问这个问题,所以我将假设n是顶点的数量,m是边的数量。按顶点名称排序,我假设你的意思是你想按字母顺序排序。如果是这样的话,那么你可能会使用线性时间排序算法来实现O(n + m),即基数排序。只要顶点名称的长度不是很大,对每个列表使用基数排序将花费O(n + m)时间总计。查看wiki的基数排序:
相关问题
- 1. 排序邻接表按字母顺序排列的儿童
- 2. 按递增顺序对元素排序两个列表
- 3. 按字母顺序排列的链表不按顺序排列
- 4. C:按字母顺序排列列表
- 5. 按字母顺序排列2D列表?
- 6. 列表Levenshtein按顺序排列PHP
- 7. 按字母顺序排列列表项
- 8. 按字母顺序排列Wordpress列表
- 9. C#列表顺序由排按升序
- 10. 按字母顺序排序列表
- 11. 按相反顺序排序列表
- 12. 将列表按字母顺序排序
- 13. 按字母顺序排序列表
- 14. 按字母顺序排序列表
- 15. 按日期排序列表,然后按最新顺序排列
- 16. 按字母顺序在PHP中递增列表
- 17. 排序表的顺序不按字母顺序排列
- 18. 排序顺序列表框
- 19. 按另一个列表顺序列表排序
- 20. 按字母顺序排序元组列表的列表
- 21. 按另一个列表的顺序对一个列表排序
- 22. Python:按照字母顺序排列的单词排序列表
- 23. 排序列表W /递增值
- 24. 按顺序排列
- 25. 排序在Python列表名单按字母顺序“列”
- 26. javascript - 按数字顺序排列表格
- 27. 链接列表按字母顺序排列
- 28. 按字母顺序排列java链接列表(类似字典)
- 29. 顺序按升序排列
- 30. 按字母顺序排列复杂对象的排列列表