給定整數串,a_1,a_2,....a_n
,求最大子串的問題,
下面給出三種方法:
#include #include
#include "vector1.h"
#include "tree.h"
using namespace std;
int maxsubsequence(int
*numarr, int len); //方法1
int maxsubsequence2(int
*numarr,int left,int right);//方法2
int maxsubsequence3(int
*numarr, int len);//方法3
int max3(int,int,int);
void main()
; //測試資料
int length = sizeof(testarr)/sizeof(int);
int maxresult = 0;
maxresult = maxsubsequence(testarr, length);
cout << "the max subsequence is "
<< maxresult << endl;
maxresult = maxsubsequence2(testarr, 0,length-1);
cout << "the max subsequence2 is "
<< maxresult << endl;
maxresult = maxsubsequence3(testarr,length);
cout << "the max subsequence3 is "
<< maxresult << endl;
}int maxsubsequence3(int
*numarr, int len) //速度最快,追求的是空間少,速度快 `o(n)`
return
max;
}int maxsubsequence2(int
*numarr, int left, int right) //演算法複雜度`o(n log(n))`
for (int i = middle+1; i <= right; i++)
}return max3(leftmax,rightmax,leftmax+rightmax);
}int maxsubsequence(int
*numarr,int len) //演算法複雜度 `o(n^2)`
}return
max;
}int max3(int a, int b, int c)
演算法題之 最大子串
題目 給定一字串只包含數字,請寫乙個演算法,找出該字串中的最長不重複子串 不重複是指子串中每一元素不同於子串中其他元素 如 120135435 最長不重複子串為 201354 方法一 輔助陣列,o n n private static string norepeatsubstring string ...
經典資料結構之最大堆
最大堆和最小堆是常用的優先佇列。其概念也比較簡單,用樹的方式描述,就是,父節點比子節點大 最大堆 小則為最小堆。最大堆和最小堆廣泛用在有先後順序的任務排程中。比如cpu的任務排程等。先上 後面再詳細解釋和補充我的看法。標頭檔案 ifndef cbinarytree h included define...
c 資料結構之最大子陣列問題(暴力解決法)
主要是利用3個迴圈把每一種可能性都遍歷,然後得到最大子陣列,缺點就是效能,時間消耗過大 namespace 002最大子陣列問題之暴力求解法 int changearray new int pricearray.length 1 變化 for int i 0 i pricearray.length ...