从0开始学算法--排序(1.12c++利用标准库排序)

1,简单数组按升序排序

ort(a,a+n);
知识兔

#include <iostream>
#include <cstring>
#include <vector>
#include <cstdio>
#include <cmath>
#include <queue>

using namespace std;

const int maxn=1e5+10;
int a[maxn];
int n;

int main(){
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    sort(a,a+n);
    for(int i=0;i<n;i++){
        printf("%d ",a[i]);
    }printf("\n");
    return 0;
}
知识兔

2.简单数组降序排序


#include <iostream>
#include <cstring>
#include <vector>
#include <cstdio>
#include <cmath>
#include <queue>

using namespace std;

const int maxn=1e5+10;
int a[maxn];
int n;

bool complare(int a,int b){
    return a>b;
}

int main(){
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    sort(a,a+n,complare);
    for(int i=0;i<n;i++){
        printf("%d ",a[i]);
    }printf("\n");
    return 0;
}
知识兔

3.结构体排序

struct node{
    int a,b;
    double c;
}an[maxn];

bool cmp(node x,node y){
    if(x.a!=y.a)return x.a<y.a;
    if(x,b!=y.b)return x.b>y.b;
    return x.c<y.c;
}
sort(an,an+n,cmp);
知识兔

4.vector排序

ort(v.begin(),v.end());
知识兔

5.vector结构体排序

struct job{
    int j,b;
    bool operator<(cost job &x)const{
        return j>x.j;
    }
};
vector<job>v;
sort(v.begin(),v.end);
知识兔
计算机