bool is_prime(int a){//素数判定 O(logn)
for(int i=2;i*i<=a;i++)
if(a%i!=0) return 0;
return 1;
}
long long factorial(int a){//阶乘 O(n)
if(a==1) return a;
else return a*factorial(a-1);
}
{//分治排序 O(nlogn)
void qsort(int a,int b){
if(a>=b)return;
int p=partition(a,b);
qsort(a,p);
qsort(p+1,b);
}
int partition(int a,int b){
int pivot=x[(a+b)/2];
int i=a-1,j=b+1;
while(1){
while(x[++i]<pivot);
while(x[--j]>pivot);
if(i>=j) return j;
swap(x[i],x[j]);
}
}
}
见上