各位大大好 小弟有個問題想請教
https://i.imgur.com/A6e17EY.jpg
如圖,其中寫出原始Recurrence Relation的部分,為何 f(x) = 2 ?
就我的理解 f(x) = 1 才對,因為把 2^n 個數等分成兩群後,
各群的總比較數為 a_n-1,兩群各找出極值,總共做了 2 * a_n-1 次比較後,
剩兩個數,只需要再做一次比較即可找出極值,故 2^n 個數的總比較數 a_n :
a_n = 2 * a_n-1 + 1
跟講義不一樣,哪個才對?
感謝
作者:
skyHuan (Huan)
2018-10-06 22:00:00這題洪逸的DS筆記有類似的想法,在sort那章的最後面,同意樓上說的2*a_n-1分別找出兩群的min跟Max,兩群的min跟Max再分別做比較才知道誰是真正的min跟Max,所以+2
作者:
eggy1018 (羅密æ與豬éŽå¤œ)
2018-10-06 21:01:00個人覺得應該是an找n個中最大值的比較次數相當於找n-1個中最大值(an-1)找完之後再比一次所以加一因為要同時找最大&最小所以整體*2題外話,比an-1次不代表一定是極值,因為是在n個裡面找,所以你的方式我覺得可能有些瑕疵,如果有錯誤還請指正
作者: nannnnn (nannnnn) 2018-10-06 19:48:00
因為要同時找出最大和最小?所以子問題兩群中小的跟小的比,大的再跟大的比,這樣就比較兩次了
喔喔 好像是耶同意n大&s大 感謝指點!!謝謝e大關於極值的指正,講"該群極值"也許比較清楚仔細想想發現同時找極大極小不需要全部係數乘 2因為 a_n-1 包含了在 2^n-1 個數中找極大與找極小的總次數