第2章 演算法分析

2022-09-11 18:30:10 字數 1592 閱讀 5156

最大子串行和問題的求解

演算法1:時間複雜度為o(n^3)

1

public

static

int maxsubsum1(int

a)21617

return

maxsum;

18 }

演算法2:時間複雜度為o(n^2)

1

public

static

int maxsubsum2(int

a)216}

1718

return

maxsum;

19 }

演算法3:時間複雜度o(n logn)

1

public

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)

1

public

static

int maxsubsum4(int

a)21415

return

maxsum;

16 }

折半查詢時間複雜度o(n)

1

public

static

extends comparable<? super anytype>>

2int

binarysearch(anytype a, anytype x)317

18return -1;

19 }

歐幾里得演算法計算最大公因數(log n)

1

public

static

long gcd(long m, longn)2

910return

m;11 }

高效率的冪運算 (logn)

1

public

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...