查看: 1382| 回复: 5
跳转到指定楼层
上一主题 下一主题
收起左侧

[树/链表/图] 请教大家一道关于邻接链表的算法题

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
设计一种O(V+E)的算法来将给定的一个图的邻接链表中包含的顶点(vertax)按由小到大的顺序排列。

V代表点,E代表边。
例如一个邻接链表原先是:
1: 4->3
2: 3->1->4
3: 4->2
4: 1
用完这个算法就变成:
1: 3->4
2: 1->3->4
3: 2->4
4: 1

不知道有没有大佬有思路的?感谢!

评分

参与人数 2大米 +5 收起 理由
14417335 + 3
dennyzhang007 + 2 很有用的信息!

查看全部评分


上一篇:请教大家一道题:wiggle subsequence
下一篇:一道有点疑惑的关于横叉边的简答题
推荐
WarriorZ 2020-1-27 02:56:36 | 只看该作者
全局:
感觉就是一个LinkedList的排序问题啊。然后每个点都跑一遍。我暂时能想到的就是mergeSort了。
回复

使用道具 举报

🔗
zebsen 2020-1-26 22:57:38 来自APP | 只看该作者
全局:
counting sort,复杂度O(E+V)是因为每个vertex都是独立的。或者理解为bucket sort也行。

补充内容 (2020-1-26 06:59):
打错,*每个vertex都是distinct的
回复

使用道具 举报

🔗
zebsen 2020-1-26 22:58:28 来自APP | 只看该作者
全局:
zebsen 发表于 2020/01/26 22:57:38
counting sort,复杂度O(E+V)是因为每个vertex都是独立的。或者理解为bucket sort也行。
打错,每个vertex都是distinct的
回复

使用道具 举报

🔗
 楼主| milkkkmillkk 2020-1-29 01:13:51 | 只看该作者
全局:
zebsen 发表于 2020-1-26 22:57
counting sort,复杂度O(E+V)是因为每个vertex都是独立的。或者理解为bucket sort也行。

补充内容 (2020 ...

感谢回答!如果说总共有6个vertax,那么就需要用6次couting sort来完成吗?
couting sort的复杂度是O(n+k),那么V在这里对应的是range k?E在这里对应的是number n?
回复

使用道具 举报

🔗
zebsen 2020-1-29 12:10:54 来自APP | 只看该作者
全局:
milkkkmillkk 发表于 2020/01/29 01:13:51
感谢回答!如果说总共有6个vertax,那么就需要用6次couting sort来完成吗?
couting sort的...
k 对应V没错,n对应的是E+V, 因为adjacency list的space complexity是O(E+V)。所以总的来说time complexity是O(E+2V)=O(E+V)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表