vant coupon 时间戳如何计算_计软考研双日练 | 如何计算拓扑排序算法的时间复杂度?...
撰稿?| 康康哥
編輯?| 麗麗姐
本文由懂計算機、軟件工程的博士師哥原創
雙日練:NO.20200610
若將n個頂點e條弧的有向圖采用鄰接表存儲,則拓撲排序算法的時間復雜度是( )。
A.??O(n)
B.??O(n+e)
C.??O(n2)
D.??O(nxe)
解析:本題考查鄰接表存儲、拓撲排序
鄰接表存儲、拓撲排序
拓撲排序:由AOV網構造拓撲序列的拓撲排序算法主要是循環執行以下兩步,直到不存在入度為0的頂點為止。
(1) 選擇一個入度為0的頂點并輸出之;
(2) 從網中刪除此頂點及所有出邊。
循環結束后,若輸出的頂點數小于網中的頂點數,則輸出“有回路”信息,否則輸出的頂點序列就是一種拓撲序列。
對有n個頂點和e條弧的有向圖而言,建立求各頂點的入度的時間復雜度為O(e);
建零入度頂點棧的時間復雜度為O(n);
在拓撲排序過程中每個頂點進一次棧、出一次棧,入度減1的操作在while語句中總共執行e次,所以總的時間復雜度為O(n+e)。
拓撲排序初始參數只有鄰接表,所以第一步建立入度數組,因為每1入度對應一條弧,總共e條弧,建立入度數組的復雜度為O(e)。
每個節點輸出一次,n個節點遍歷一次,時間復雜度為O(n)。然后節點入度減1的操作,也是一條弧對應一次,e條弧總共O(e)。
以上總計O(n+2e),即O(n+e)。
故選B。
軟工博士帶你飛考軟工 · 看CS優化獅
總結
以上是生活随笔為你收集整理的vant coupon 时间戳如何计算_计软考研双日练 | 如何计算拓扑排序算法的时间复杂度?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python axis 0_axis=0
- 下一篇: python输入学号返回成绩_Pytho