快速排序
#include<bits/stdc++.h>
using namespace std;
int A[1145141]= {};
void qsort(int a,int b){
if(a>b) return ;
int x=A[a],l1=a;
for(int i=a;i<=b;i++){
if(A[i]>x) swap(A[++l1],A[i]);
}
swap(A[a],A[l1]);
qsort(a,l1-1);
qsort(l1+1,b);
}
int main() {
int n;
cin>>n;
for(int i=1; i<=n; i++) {
cin>>A[i];
}
qsort(1,n);
int k;
cin>>k;
for(int i=1;i<=k;i++){
cout<<A[i]<<endl;
}
}
归并排序
#include <bits/stdc++.h>
using namespace std;
long long a[10000001],b[10000001],ans,cnt=0;
void msort(int l,int r) {
if(l>=r) {
return ;
}
long long mid=(l+r)>>1;
msort(l,mid);
msort(mid+1,r);
int i=l,j=mid+1,k=l;
while(i<=mid&&j<=r) {
if(a[i]<a[j]) {
b[k++]=a[i++];
} else {
b[k++]=a[j++];
}
}
while(i<=mid) b[k++]=a[i++];
while(j<=r) b[k++]=a[j++];
for(int i=l; i<=r; i++) {
a[i]=b[i];
}
}
int main() {
long long n;
cin>>n;
for(long long i=1; i<=n; i++ ) cin>>a[i];
msort(1,n);
for(long long i=1; i<=n; i++ ) cout>>a[i];
return 0;
}
快速幂
#include<iostream>
using namespace std;
#define int long long
int b,p,k;
int f(int z) {
if(z==0) return 1;
int x=f(z/2)%k;
if(!(z%2)) return (x%k*x%k)%k;
else return (x%k*x*b%k)%k;
}
signed main() {
cin>>b>>p>>k;
printf("%lld^%lld mod %lld=%lld",b,p,k,f(p));
return 0;
}