[理工] 演算法 林立宇講義練習題
第13題,divide&conquer
題目
https://i.imgur.com/Q1Vn4K5.jpg
主要是想問
1.我這樣的答題格式可以嗎?
2.我發現上面105年交大他有可能找不到最大值,所以試著修改了一下,但發現我的寫法wor
st case會變O(n),這樣扣分會很嚴重嗎@@
還是我完全寫錯了...?
感謝問題板
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.219.48 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1567357052.A.956.html
推
09/02 01:11,
4年前
, 1F
09/02 01:11, 1F
→
09/02 01:12,
4年前
, 2F
09/02 01:12, 2F
原來如此@@!之前不知道
→
09/02 01:13,
4年前
, 3F
09/02 01:13, 3F
→
09/02 01:13,
4年前
, 4F
09/02 01:13, 4F
→
09/02 01:14,
4年前
, 5F
09/02 01:14, 5F
→
09/02 01:14,
4年前
, 6F
09/02 01:14, 6F
→
09/02 01:20,
4年前
, 7F
09/02 01:20, 7F
→
09/02 01:20,
4年前
, 8F
09/02 01:20, 8F
瞭解,我原本想說用mod應該就不會了,但剛剛想想其實還是會...orz
→
09/02 01:21,
4年前
, 9F
09/02 01:21, 9F
請教m大,因為我一開始是卡在沒有key做binary search
剛剛想到,如果我是拿A[low],A[mid],A[high]這三個來做比較不知道是否可行呢?
像是這樣
https://i.imgur.com/bcjYe0U.jpg
→
09/02 07:50,
4年前
, 10F
09/02 07:50, 10F
※ 編輯: mistel (114.136.219.48 臺灣), 09/02/2019 07:51:37
→
09/02 08:06,
4年前
, 11F
09/02 08:06, 11F
→
09/02 08:06,
4年前
, 12F
09/02 08:06, 12F
→
09/02 08:10,
4年前
, 13F
09/02 08:10, 13F
→
09/02 08:14,
4年前
, 14F
09/02 08:14, 14F
→
09/02 08:14,
4年前
, 15F
09/02 08:14, 15F
→
09/02 08:14,
4年前
, 16F
09/02 08:14, 16F
→
09/02 08:14,
4年前
, 17F
09/02 08:14, 17F
J大,我知道要找兩個點切割子問題,但我真的想不通要怎麼切才會確定最大的值會在我留
下來的那一塊...
※ 編輯: mistel (114.136.219.48 臺灣), 09/02/2019 12:22:22
→
09/02 12:58,
4年前
, 18F
09/02 12:58, 18F
→
09/02 13:05,
4年前
, 19F
09/02 13:05, 19F
→
09/02 13:05,
4年前
, 20F
09/02 13:05, 20F
→
09/02 13:38,
4年前
, 21F
09/02 13:38, 21F
→
09/02 13:38,
4年前
, 22F
09/02 13:38, 22F
→
09/02 13:39,
4年前
, 23F
09/02 13:39, 23F
→
09/02 13:42,
4年前
, 24F
09/02 13:42, 24F
→
09/02 13:43,
4年前
, 25F
09/02 13:43, 25F
→
09/02 13:46,
4年前
, 26F
09/02 13:46, 26F
→
09/02 13:48,
4年前
, 27F
09/02 13:48, 27F
→
09/02 14:46,
4年前
, 28F
09/02 14:46, 28F
→
09/02 14:50,
4年前
, 29F
09/02 14:50, 29F
→
09/02 15:04,
4年前
, 30F
09/02 15:04, 30F
我的意思是遞迴的中斷條件修改成:
若中點確實大於左右端點,
那我再檢查中點是否大於左鄰居跟右鄰居,
成立,則中點最大;
否則,若左鄰居比中點大,遞迴搜尋左半邊;
否則,右鄰居大,遞迴搜尋右半邊;
我想法是數列是遞增的,
所以如果中點是最大,那它一定大於端點且大於左右鄰居(代表左半數列跟右半數列都比中
點小),如果中點不是最大,那必然左鄰居跟右鄰居有一個比中點大,我就往那一邊繼續搜
尋
所以我只要兩個條件都成立,這個就是最大 ...
請問這樣子想法還是不對嗎,其實我不知道我到底是方向就錯了還是細節就錯了,請再指點
一下,麻煩了
※ 編輯: mistel (114.136.219.48 臺灣), 09/02/2019 16:51:39
→
09/02 19:17,
4年前
, 31F
09/02 19:17, 31F
→
09/02 19:19,
4年前
, 32F
09/02 19:19, 32F
→
09/02 19:20,
4年前
, 33F
09/02 19:20, 33F
→
09/02 21:19,
4年前
, 34F
09/02 21:19, 34F
→
09/02 21:20,
4年前
, 35F
09/02 21:20, 35F
→
09/02 21:21,
4年前
, 36F
09/02 21:21, 36F
→
09/02 21:26,
4年前
, 37F
09/02 21:26, 37F
→
09/02 21:26,
4年前
, 38F
09/02 21:26, 38F
→
09/02 21:27,
4年前
, 39F
09/02 21:27, 39F
→
09/03 08:44,
4年前
, 40F
09/03 08:44, 40F
→
09/03 14:13,
4年前
, 41F
09/03 14:13, 41F
→
09/03 14:14,
4年前
, 42F
09/03 14:14, 42F
→
09/03 14:15,
4年前
, 43F
09/03 14:15, 43F
→
09/03 14:15,
4年前
, 44F
09/03 14:15, 44F
→
09/03 14:16,
4年前
, 45F
09/03 14:16, 45F
→
09/03 14:17,
4年前
, 46F
09/03 14:17, 46F
→
09/03 14:53,
4年前
, 47F
09/03 14:53, 47F
→
09/03 16:24,
4年前
, 48F
09/03 16:24, 48F
→
09/03 16:26,
4年前
, 49F
09/03 16:26, 49F