本文介绍了按降序和升序对奇数排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给出一个随机整数数组,对奇数元素按降序排序,对偶数按升序排序.

Given a array of random integers, sort the odd elements in descending order and even numbers in ascending order.

示例输入:(1、4、5、2、3、6、7)
输出:(7,5,3,1,2,4,6)

优化时间复杂度.

推荐答案

是C还是C ++(我看到两个标签)是哪种语言

Which language is it, C or C++ (I see both tags)

在C ++中,可以将 std :: sort()与适当的排序功能一起使用.在C语言中, qsort()的工作方式类似:

In C++, you can use std::sort() with appropriate ordering function. In C, qsort() works similarly:

#include <iostream>
#include <algorithm>
bool Order(int a, int b)
{
        if (a%2 != b%2) return a%2;
        else return a%2 ? b<a : a<b;
}
int main()
{
        int a[] = {1,4,5,2,3,6,7};
        size_t N = sizeof(a) / sizeof(a[0]);

        std::sort(a, a+N, Order);

        for(size_t i=0; i<N; ++i)
                std::cout << a[i] << ' ';
        std::cout << std::endl;

}

这篇关于按降序和升序对奇数排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-11 14:26