首页 > 其他分享 >2.整数奇偶排序

2.整数奇偶排序

时间:2023-08-02 10:12:34浏览次数:28  
标签:奇偶 int ArrayList 整数 排序 odd

【题目】

给一个 10 个整数的序列,要求对其重新排序。排序要求:

1.奇数在前,偶数在后;

2.奇数按从大到小排序;

3.偶数按从小到大排序。
输入格式

    输入一行,包含 10 个整数,彼此以一个空格分开,每个整数的范围是大于等于 0,小于等于 100。

输出格式

    按照要求排序后输出一行,包含排序后的 10 个整数,数与数之间以一个空格分开。

Sample Input

    4 7 3 13 11 12 0 47 34 98

Sample Output

    47 13 11 7 3 0 4 12 34 98

【思路】

先分奇偶,然后分别排序,注意可变数组的写法,和默认的排序顺序。

【代码】

public static int[] coupons(int[] g) {
        ArrayList<Integer> odd = new ArrayList<>();
        ArrayList<Integer> eve = new ArrayList<>();
        for (int i : g) {
            if (i % 2 == 1) {
                odd.add(i);
            } else {
                eve.add(i);
            }
        }
        Collections.sort(eve);
        Collections.sort(odd, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                if(o1>o2){
                    return -1;
                }else if(o1<o2){
                    return 1;
                }
                return 0;
            }
        });
        int i=0;
        for(int x:odd){
            g[i++] = x;
        }
        for(int x:eve){
            g[i++] = x;
        }
        return g;
    }

 

标签:奇偶,int,ArrayList,整数,排序,odd
From: https://www.cnblogs.com/End1ess/p/17599830.html

相关文章

  • PHPHashtable 如何优化数组查找和排序
    PHPHashtable如何优化数组查找和排序PHP是一种高度流行的编程语言,被广泛用于web开发。它有很多的优点,例如易于学习、跨平台、简单易用的语法等等。而在PHP中,数组是一种非常常用的数据结构,它可以存储一组有序的数据,方便我们进行各种操作。PHPHashtable如何优化数组查找和排......
  • MySQL 排序一
    前言   排序是数据库中的一个基本功能,MySQL也不例外。用户通过Orderby语句即能达到将指定的结果集排序的目的,其实不仅仅是Orderby语句,Groupby语句,Distinct语句都会隐含使用排序。本文首先会简单介绍SQL如何利用索引避免排序代价,然后会介绍MySQL实现排序的内部原理,并介绍......
  • 找出乱序数组第k大的数字(堆排序专场)
    使用堆排序来解决《乱序数组第k大的数字》先放上代码(虽然leetcode要求O(n),但是堆排序是O(nlogn))`classSolution{publicintfindKthLargest(int[]nums,intk){intheapSize=nums.length;buildHeap(nums,heapSize);for(inti=nums.length-1;i>=nums.length-......
  • 排序算法---快速排序
    什么是快速排序?快速排序(QuickSort)是一种高效的排序算法,它使用分治法来将一个数组分成两个子数组,然后对这两个子数组分别进行排序,最后将它们合并成有序的数组。快速排序的基本步骤:1.选择一个基准元素(pivot):从数组中选择一个元素作为基准元素。通常选择数组的第一个元素或者最后......
  • 冒泡排序
    第一趟:相邻比较,若前>后,交换位置,直到最后一个位置为max第二趟:相邻比较,若前>后,交换位置,直到倒数第二个位置为max(除最后一个位置)第n趟:......@Testpublicvoidtest1(){int[]arr={7,6,5,4,3,2,1,1};inttemp;//比较趟数。共leng......
  • 【11.0】DRF之过滤排序分页
    【准备数据】模型fromdjango.dbimportmodels#Createyourmodelshere.classBook(models.Model):name=models.CharField(max_length=32)price=models.IntegerField()序列化类#-*-coding:Utf-8-*-#@File:book_serializer.py#author:Chi......
  • 排序算法
    时间复杂度:由于计算机的性能不同,无法准确地确定一个算法的执行时间因此使用执行算法的次数来代表算法的时间复杂度一般用O(公式)来表示空间复杂度:执行一个程序(算法)所需要的内存空间的大小,是对一个算法在运行过程中临时占用存储空间大小的衡量通常来说,只要这个算法不涉及动......
  • 快速排序
    主要思想:分治关键步骤:确定分界点:创建一个数组q,在数组中选一个基准数(通常为数组第一个),x=q[left],q[(left+right)/2],q[right].2.调整区间:把比基数(x)小的数放在左边,比基数大的数放在右边。3.递归处理左右两段,不断递归直至排序完成。例如:1.6为基准数,设i,j为两哨兵,目前指向......
  • java常见的排序算法(冒泡排序、选择排序、插入排序、shell排序、归并排序、堆排序、快
    文章目录一、冒泡排序1、效率表现和适用范围2、算法实现二、选择排序1、效率表现和适用范围2、算法实现三、插入排序1、效率表现和适用范围2、算法实现四、shell排序1、效率表现和适用范围2、算法实现五、归并排序1、效率表现和适用范围2、算法实现六、快速排序1、效率表现和适用......
  • LC 8、字符串转换整数(atoi)
    LC8、字符串转换整数(atoi)题目描述Leetcode上的8、字符串转换整数(atoi),难度为中等请你来实现一个myAtoi(strings)函数,使其能将字符串转换成一个32位有符号整数(类似C/C++中的atoi函数)。函数myAtoi(strings)的算法如下:读入字符串并丢弃无用的前导空格检查下......