簡體   English   中英

請告訴我 貪心算法 時間分析 對於一個問題

[英]Please tell me Greedy algorithm Time analysis For a problem

假設您正在經營一家運輸網絡公司。 假設您有 M 名司機和 N 名乘客,這樣一名司機只能選擇 1 名乘客,而 1 名乘客一次只能乘坐 1 名司機。 為方便出行,司機不得接載學歷相差2年以上的乘客。 請用 devise 的算法來最大限度地匹配司機和乘客的數量。

算法:

您可以采取的一種貪婪方法是通過增加 # 年的教育來對 M 司機和 N 乘客的名單進行排序。 然后,您可以使用兩個指針來分配對。 從每個列表的開頭開始比較當前的司機和乘客。 如果他們的教育水平 <= 2,則將兩者分配為一對並遞增兩個指針。 如果他們的教育水平> 2,則增加具有較低教育水平的指針並繼續。 一旦您到達兩個列表的末尾,您就完成了分配對。 這將分配最大數量的有效駕駛員-乘客對。

運行時分析:

驅動程序排序列表:O(M log M)

乘客排序列表:O(N log N)

分配對:O(N + M)

運行時間:O(M log M + N log N)

我希望這些信息對你有用!

暫無
暫無

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

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