Sort()排序函数+自定义Compare()

利用自定义函数Compare()函数,重写sort函数的排序规则

注意:

1. Compare()函数传入的值一般都是带&

2. Compare()如果是升序,则返回a<b;如果是降序,则返回a>b

3. Compare(int &a,int &b)表示前面的是a,后面是b。如果在某个if下要保持a和b的这种先后顺序,则返回true;如果要颠倒,则返回false

 

Sort()排序函数+自定义Compare()

 

 

/*
-------------------------------------------------
   Author:       wry
   date:         2022/3/1 10:40
   Description:  test
-------------------------------------------------
*/

#include <bits/stdc++.h>

using namespace std;

int arr[10];

bool Compare(int &a,int &b) {
    if (a%2==1 && b%2==1) {    //都是奇数,从大到小
        return a>b;
    }
    else if (a%2==0 && b%2==0) {    //都是偶数,从小到大
        return a<b;
    }
    else if (a%2==1 && b%2==0) {    //a为奇数,b为偶数,奇数在偶数前面,返回true表示不换位置
        return true;
    }
    else if (a%2==0 && b%2==1) {    //a为偶数,b为奇数,奇数在偶数前面,返回false表示调换位置
        return false;
    }
}

int main() {
    for (int i=0;i<10;i++) {
        cin >>arr[i];
    }
    sort(arr,arr+10,Compare);
    for (int i=0;i<10;i++) {
        cout << arr[i] << " ";
    }
    return 0;
}

 

上一篇:数组冒泡排序的两种方法


下一篇:beyond compare 4重新试用