求最長單調遞增子串行

2022-09-19 22:15:20 字數 884 閱讀 3982

問題描述

設計乙個時間的演算法,找出由n個數組成的最長單調遞增子串行。

演算法描述

演算法實現

#includestruct

date

;void ascorder(struct date *a,int

n) }

}//輸出最長單調遞增子串行

//找到最長單調遞增子串行開始的單元

int max=0

;

intfore;

for(int i=0;i)

if(a[i].order>max)

//依次輸出序列中的單元

for(int i=0;i)

if((a[i].order==max)&&(a[i].num>=fore))

}int

main()

;

//自定義陣列

int n=15

; ascorder(a,n);

//求解最長單調遞增子串行演算法

return0;

}

演算法複雜度分析(時間、空間)1.分析程式中迴圈巢狀最多語句:

for(int i=n-1;i>=0;i--)

for(int j=i+1;j易得程式的時間複雜度為。

2.空間複雜度為。程式執行過程中開闢了乙個大小為n的自定義陣列(相當於兩個大小為n的整型陣列)、定義了若干整型變數且無遞迴呼叫,故空間複雜度為。

最長單調遞增子串行

單調子串行包含有單調遞增子串行和遞減子串行,不失一般性,這裡只討論單調遞增子串行。首先,從定義上明確我們的問題。給定序列a1,a2,an,如果存在滿足下列條件的子串行 ai1 ai2 aim,其中i1即稱為乙個原序列的長度為m的單調遞增子串行,那麼,現在的問題是我們要找出乙個序列的最長的單調遞增子串...

最長單調遞增子串行

設計乙個o n2 時間的演算法,找出由n個數組成的序列的最長單調遞增子串行。輸入 第1個整數n 0分析 用陣列b 0 i 記錄以a i 0 i a k 並且 b k max b j 1 j i 1 所以 b i b k 1.如果存在k b k b k 並且 a i a k 即 b i 不是滿足條件的...

最長單調遞增子串行問題

設計乙個o n2 複雜度的演算法,找出由n個數組成的序列的最長單調遞增子串行。public class lis 儲存資料 int b new int a.length 儲存每個元素的最長單調遞增子串行 int ab new int a.length a.length 儲存每個元素的單調遞增子串行值 ...