3446. 整数奇偶排序

3446.整数奇偶排序

⭐️难度:简单

⭐️类型:排序

📖题目:题目链接

🌟思路:考察sort函数自定义排序规则

因为自定义函数的两个参数 lhs 和 rhs 不发生交换时,才返回真

所以要找出 不交换的 情况:

📚题解:

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<vector>  // vector不需要.h
#include<list>
#include<set>  // // 可以用 set 和 multiset
#include<unordered_set> // 可以用 unordered_set 和 unordered_multimap
#include<map>  // 可以用 map 和 multimap
#include<unordered_map> // 可以用 unordered_map 和 unordered_multimap
#include<algorithm>

using namespace std;

bool compare(int lhs, int rhs) {
    if (lhs % 2 == 1 && rhs % 2 == 0) { // 左奇右偶,不交换
        return true;
    }
    else if (lhs % 2 == 1 && rhs % 2 == 1 && lhs > rhs) { // 左奇右奇 且 左>右,不交换
        return true;
    }
    else if (lhs % 2 == 0 && rhs % 2 == 0 && lhs < rhs) { // 左偶右偶 且 左<右,不交换
        return true;
    }
    else { // 其余情况全部交换
        return false; 
    }
}

int main() {
    int arr[10];
    for (int i = 0;i < 10;i++) {
        scanf("%d", &arr[i]);  // arr + i
    }
    sort(arr, arr + 10, compare);
    for (int i = 0;i < 10;i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    return 0;
}
相关推荐
aqiu1111112 天前
【算法刷题】蓝桥杯:怎么倒茶(贪心算法 + 结构体排序)
贪心·排序
OuO-22 天前
笔试强训 Day 43:kotori 和抽卡(二)、ruby 和薯条、循环汉诺塔
数学·前缀和·二分查找·动态规划·排序·滑动窗口·循环汉诺塔
Tisfy7 天前
LeetCode 3731.找出缺失的元素:哈希 / 排序
算法·leetcode·哈希算法·排序·哈希表
Tisfy16 天前
LeetCode 3016.输入单词需要的最少按键次数 II:排序(贪心)
linux·算法·leetcode·题解·贪心·排序·计数
Tisfy19 天前
LeetCode 3517.最小回文排列 I:排序(Python两行版) / 计数(O(n)时间+O(C)空间+字符串原地修改)
c语言·python·leetcode·字符串·排序·计数排序·回文
txzrxz21 天前
拓补排序讲解
c++·算法·图论·排序
汉克老师1 个月前
GESP2026年6月认证C++八级( 第三部分编程题(1、线网建设))精讲
c++·最小生成树·排序·kruskal·并查集·gesp8级
Tisfy1 个月前
LeetCode 1288.删除被覆盖区间:排序(非二重循环暴力)
算法·leetcode·题解·排序
hairenwangmiao2 个月前
c++排序(第一章----桶排序与sort排序)
数据结构·c++·排序
hairenwangmiao2 个月前
B4041 [GESP202409 四级] 区间排序
算法·排序