排序
sort 函数
ort 是 C++ 库中的一个高效排序函数,基于 快速排序 或 内省排序 实现,平均时间复杂度 O(n log n)
默认升序排序(从小到大)
而实现其他排序方式可以自己编写一个函数 cmp 作为 sort 的第三个参数
例:
#include<bits/stdc++.h> using namespace std; struct di{ int x; int y; int z; }; bool cmp(di a,di b){ if(a.z>b.z){ return 1; } else{ return 0; } } double jl(di a,di b){ return sqrt(pow(a.x-b.x,2)+pow(a.y-b.y,2)+pow(a.z-b.z,2)); } int n; int main(){ cin>>n; struct di din[n+2]; for (int i = 0; i < n; i++){ cin>>din[i].x>>din[i].y>>din[i].z; } sort(din,din+n,cmp); double sum=0.0; for (int i = 0; i < n-1; i++){ sum+=jl(din[i+1],din[i]); } cout<<fixed<<setprecision(3)<<sum<<endl; return 0; }
|
桶排序
#include<bits/stdc++.h> using namespace std; int g; int main(){ int n; int N[105]; bool a[1001]={0}; cin>>n; for (int i = 0; i < n; i++){ cin>>N[i]; if(a[N[i]]==0){ g++; } a[N[i]]=1; } cout<<g<<endl; for (int i = 0; i < 1000; i++){ if(a[i]){ cout<<i<<' '; } } return 0; }
|
比较大小时可考虑利用字典序,有奇效