簡體   English   中英

對於給定的圖G =(V,E),您如何在O(E + V)時間中對其鄰接列表表示進行排序?

[英]For a given graph G = (V,E) how can you sort its adjacency list representation in O(E+V) time?

因為我們知道表示頂點的整數可以采用[0,...,|V|-1]范圍內的值,所以我們可以使用計數排序來對O(V)時間中的鄰接表的每個條目進行排序。

由於我們有要排序的V列表,因此可以得到O(V^2)時間算法。 我看不到如何將其轉換為O(V+E)時間算法...

實際上,您總共需要對E元素進行排序-邊數。 因此,您對O(V^2)估計不太正確。 您可以按照線性時間相對於每個鄰接表包含的邊數對其進行排序。 總的來說,您將擁有E條邊,對所有列表進行排序的復雜度將為O(E) 當然,由於有了V列表,所以不能低於O(V) ,因此不能低於O(V +E)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM