时间复杂度
三种方法求递归算法的时间复杂度(递推,master定理,递归树)_递归时间复杂度-CSDN博客
排序
for(int i=n;i>=1;--i){
for(int j=1;j<=n-1;j++){
}
}//冒泡
for(int i=n;i>=1;--i){
for(int j=1;j<=n;j++){
}
}//选择
for(int i=2;i<=n;++i){
for(int j=i;j>1&val<a[j-1];--j){
}
}//插入
void quicksort(int a[],int l,int r){
if(l<r){
int mid=partition(a,l,r);
quicksort(a,mid+1,r);
quicksort(a,l,mid-1);
}
}
int partition(int a[],int l,int r){
int pivot=a[r];
int i=l,j=r;
while(i<j){
while(a[i]<=pivot&&i<j)i++;
while(a[j]>=pivot&&i<j)j--;
if(i<j)swap(a[i],a[j]);
else swap(a[i],a[r]);
}//i=j时,两边区域分好,继续
return i;
}//快速排序
void mergesort(int a[],int l,int r){
if(l==r)return;
int mid=(l+r)/2;
mergesort(a,l,mid);
mergesort(a,mid+1,r);
int pl=l,pb=l,pr=mid+1;
while(pl<=mid||pr<=r){
if(pl>mid)b[pb++]=a[pr++];
if(pr>r)b[pb++]=a[pl++];
else{
if(a[pl]<a[pr])b[pb++]=a[pl++];
else b[pb++]=a[pr++];
}
}
for(int i=1;i<=n;i++)a[i]=b[i];
}//归并排序
for(int i=1;i<=n;i++){
bucket[a[i]]++;
}
for(int i=0;i<=maxvalue;i++){
for(int j=1;j<=bucket[i];j++){
}
}//桶排序