[英]Algorithm implementation using divide and conquer paradigm
我需要為該算法實現一個遞歸版本。 作為遞歸的新手,我對如何解決此問題有一個非常模糊的想法。
描述一個給定n個整數S的Θ(n lg n)時間算法,該算法確定S中的哪兩個元素具有最小的差異。
一個可能使您的生活更輕松的觀察結果是認識到,如果數字是按順序排序的,那么差異最小的一對數字必須彼此相鄰。 因此,一種簡單的算法將是對元素進行排序,然后查看所有相鄰對以找到最小的對。
由於要求您遞歸執行此操作,因此您可以嘗試遞歸解決每個部分。 對於第一部分-分揀-有一噸的良好的遞歸排序算法-歸並排序和快速排序命名其中的兩個。 Mergesort的運行時間為O(n log n),因此這是一個很好的起點。
至於如何使用遞歸找到最佳對,以下一些見解可以使您獲得遞歸解決方案:
該總體方法在時間O(n log n)中運行。 我將把細節保留為練習,因為這似乎是一個問題集問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.