作者malowda (malowda)
看板Examination
標題Re: [問題] 102 專利商標 資料結構問題
時間Thu Apr 23 10:42:23 2015
※ 引述《eevvaag (Len)》之銘言:
: Q1.請使用C或JAVA語言,寫一遞迴副程式,此副程式的輸入為一個未排序的且長度為n的整
: 數陣列A[0:n-1],副程式將在此整數陣列中,以遞迴的方式群找此整數陣列中的最大值
: ,並回傳此最大值。
: Q2.請分析此副程式的時間複雜度以order的方式表示。
: A1:
: Int Max(int k , int a[i])
: {
: int max=a[k]
: if (a[k]>a[i]) than return Max(k,k-1)
: else return Max(k-1 , k-1)
: }
int Max(int n , int a[])
{
if(n==0)return a[0];
else
{
int max=Max(n-1,a);
return (max>a[n])?max:a[n];
}
}
: 不好意思,我的想法比較粗糙,我的想法是預設A[n]作為MAX,在每一回合一一往前(
: 陣列index較小的方向)比較,當max>a[i]時,下一回合就在跟a[i-1]比;同理,若
: max<a[i-1],則max等於a[i-1],再繼續往前比較
: 請問版上前輩,我的想法有哪裡錯誤?另外程式方面我可以怎樣描述才比較完整?
: A2:
: 因為我是循序去找陣列的最大值,所以最差會是O(N)嗎?order的方式表示是指甚麼意思?
: 還請版上前輩指教...謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.69.124.30
※ 文章網址: https://www.ptt.cc/bbs/Examination/M.1429756946.A.5EB.html
推 eevvaag: 謝謝你的回應!!但想要再請教: 04/23 22:52
→ eevvaag: int max=Max(n-1,a) 為甚麼要這樣寫? 這樣不是程式一執 04/23 22:54
→ eevvaag: 行,沒經過IF 就直接遞迴了? 04/23 22:55
→ eevvaag: 不好意思... 04/23 22:55