設計乙個o(n2)複雜度的演算法,找出由n個數組成的序列的最長單調遞增子串行。
public class lis ;//儲存資料
int b = new int[a.length];//儲存每個元素的最長單調遞增子串行
int ab = new int[a.length][a.length];//儲存每個元素的單調遞增子串行值
public void lis()else if(j > i && a[j] > a[i] && a[j] > k)
}} //查詢最長子序列
int max = b[0];//記錄最大子串行值
int ii = 0;//記錄最大子串行值下標
for(int i = 0;i < b.length;i++)
} system.out.println("最長單調遞增子串行長度:"+max);
// for(int i = 0;i < a.length;i++)
// system.out.println();
// }
system.out.print("最長單調遞增子串行為:");
for(int j = 0;j < a.length;j++)
} }public static void main(string args)
}
最長單調遞增子串行
單調子串行包含有單調遞增子串行和遞減子串行,不失一般性,這裡只討論單調遞增子串行。首先,從定義上明確我們的問題。給定序列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 不是滿足條件的...
求最長單調遞增子串行
問題描述 設計乙個時間的演算法,找出由n個數組成的最長單調遞增子串行。演算法描述 演算法實現 includestruct date void ascorder struct date a,int n 輸出最長單調遞增子串行 找到最長單調遞增子串行開始的單元 int max 0 intfore for...