最大子串行和問題的求解
演算法1:時間複雜度為o(n^3)
1public
static
int maxsubsum1(int
a)21617
return
maxsum;
18 }
演算法2:時間複雜度為o(n^2)
1public
static
int maxsubsum2(int
a)216}
1718
return
maxsum;
19 }
演算法3:時間複雜度o(n logn)
1public
static
int maxsubrec(int a, int left, int
right)220
21int maxrighrbordersum = 0, rightbordersum = 0;
22for (int i = center; i < right; i++)
2328
29return max3(maxleftsum, maxrightsum, maxleftbordersum +maxrighrbordersum);30}
3132
public
static
int max3(int a, int b, int
c)33
3738
public
static
int maxsubsum3(int
a)39
演算法4:時間複雜度o(n)
1public
static
int maxsubsum4(int
a)21415
return
maxsum;
16 }
折半查詢時間複雜度o(n)
1public
static
extends comparable<? super anytype>>
2int
binarysearch(anytype a, anytype x)317
18return -1;
19 }
歐幾里得演算法計算最大公因數(log n)
1public
static
long gcd(long m, longn)2
910return
m;11 }
高效率的冪運算 (logn)
1public
static
long pow(long x, intn)2
1213
public
static
boolean iseven(long
x)14
第2章 演算法分析
知識點 2.1 數學基礎 法則1 如果t1 n o f n 且t2 n o g n 那麼 a t1 n t2 n o f n g n 或者t1 n t2 n o max f n g n b t1 n t2 n o f n g n 法則2 如果t n 是乙個k次多項式,則t n n k 法則3 對於任...
第 2 章 演算法
演算法 是解決待定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條指令表示乙個或多個操作。指演算法在執行有限的步驟後,自動結束而不會出現無限迴圈,並且每乙個步驟在可接受的時間內完成。演算法的每一步驟都具有確定的含義,不會出現二義性。演算法的每一步都必須是可行的,也就是說,每一步都能夠通過...
演算法導論第2章 演算法基礎
2.1 插入排序 includeusing namespace std void insertion sort int a,int n 宣告 void print int a,int n void insertion sort int a,int n a i 1 key void print int...