加法规则:T(n,m)=T1(n)+T2(m)=0(max{f(n),g(m)}
乘法规则:T(n,m)=T1(n)*T2(m)=0(max{f(n)*g(m)}
比较规则:0(1)<0(log2n)<0(n)<0(nlog2n)<0(n^2)<0(n^3)<……<0(n^k)<0(2^n)<0(n!)<0(n^n)
算法计算时间递推关系式:
T(n)=2T()+
T(1)=1
最坏时间 | 平均时间复杂度 | 稳定性 | 空间复杂度 | |
插入排序 | 0( | 0( | V | o(1) |
选择排序 | 0( | 0( | X | o(1) |
冒泡排序 | 0( | 0( | V | o(1) |
希尔排序 | 0( | 0(nlog2n) | X | o(1) |
快速排序 | 0( | 0(nlog2n) | X | 0(log2n) |
堆排序 | 0(nlog2n) | 0(nlog2n) | X | o(1) |
归并排序 | 0(nlog2n) | 0(nlog2n) | V | o(1) |
string类型:
string s | char s[100] |
s.size() | strlen(s) |
s[i] | s[i] |
s>s1 < == | strcmp(s,s1) |
s1=s | strcpy(s1,s) |
+ += | strcat(s,s1) |
struct结构体:
struct x{
string a;
int b;
float c;
}
埃氏筛:
void zhi(int n){
memset(vis,0,sizeof(vis));
vis[1]=1;
for(int i=2;i<=n;i++){
if(vis[i])
continue;
cout<<i<<endl;
for(int j-1;j<=n;j++)
vis[i*j]=1;
}
}