java中的Sort函数,你值得看

基于C语言中的sort如此这么方便,自然而然,java中也有类似C的sort函数。

1.普通数组:Arrays.sort(数组名,开始位置,结束位置)。

2.类中属性排序:

  模板:

class A

{

  int n;

}

class cmp implement Comparator<A>

{

  降序:

  public int compare(A a,A b)

  {

    if(a.n < b.n)

    {

      return 1;

    }

    else if(a.n == b.n)

      return 0;

    else

      return -1;

  }

}

public class B

{

。。。。。。。

。。。。。。。

  A[] = new A[[10];

......................

  Arrays.sort(A,0,10,new cmp());

}

基本就是这样了

 

下面来看一道题目:

时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小)

题目描述

月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需

求量,请你计算可以获得的最大收益是多少。



注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有3种月饼,其库存量分别为18、15、10万吨,总售价分别为75、

72、45亿元。如果市场的最大需求量只有20万吨,那么我们最大收益策略应该是卖出全部15万吨第2种月饼、以及5万吨第3种月饼,获得

72 + 45/2 = 94.5(亿元)。

输入描述:

每个输入包含1个测试用例。每个测试用例先给出一个不超过1000的正整数N表示月饼的种类数、以及不超过500(以万吨为单位)的正整数

D表示市场最大需求量。随后一行给出N个正数表示每种月饼的库存量(以万吨为单位);最后一行给出N个正数表示每种月饼的总售价(以亿

元为单位)。数字间以空格分隔。


输出描述:

对每组测试用例,在一行中输出最大收益,以亿元为单位并精确到小数点后2位。

输入例子:

3 20

18 15 10

75 72 45

输出例子:

94.50

代码实现如下:
package package1111;

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

class MoonCake
{
    int    quantity;
    int money;
    double unitprice;
}
class cmp implements Comparator<MoonCake>
{
    public int compare(MoonCake A , MoonCake B)
    {
        if(A.unitprice < B.unitprice)
        {
            return 1;
        }
        else if(A.unitprice == B.unitprice)
        {
            return 0;
        }
        else
        {
            return -1;
        }
    }
}
public class Main
{
    public static MoonCake num[] = new MoonCake[1005];
    public static void main(String []args)
    {
        Scanner cin = new Scanner(System.in);
        int N,D;
        N = cin.nextInt();
        D = cin.nextInt();
        for(int i = 0 ; i < N ; i++)
        {
            num[i] = new MoonCake();
            num[i].quantity = cin.nextInt();
        }
        for(int i = 0 ; i < N ; i++)
        {
            num[i].money = cin.nextInt();
            num[i].unitprice = num[i].money*1.0/num[i].quantity;
        }
        Arrays.sort(num,0,N,new cmp());
        double sum = 0;
        for(int i = 0 ; i < N ; i++)
        {
            if(num[i].quantity < D)
            {
                sum += num[i].money;
                D = D - num[i].quantity;
                continue;
            }
            else if(num[i].quantity == D)
            {
                sum += num[i].money;
            }
            else
            {
                sum += D*num[i].unitprice;
            }
            break;
        }
        String output = String.format("%.2f", sum);
        System.out.print(output);
    }
}


转载于:https://www.cnblogs.com/674001396long/p/9626784.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426867.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2021届定远三中高考成绩查询,定远各中学高考喜报!

原标题&#xff1a;定远各中学高考喜报&#xff01;关注定远2019年高考实现多项新突破本科达线人数较上年增加340人(点击看大图)砥砺前行新时代&#xff0c;定远教育写华章。6月23日&#xff0c;全县人民高度关注的2019年高考成绩揭晓。我县教体系统广大师生不负众望&#xff0…

实例30:python

#一个5位数&#xff0c;判断它是不是回文数。即12321是回文数&#xff0c; #个位与万位相同&#xff0c;十位与千位相同。 x int(input(‘输入一个五位数&#xff1a;’)) a int(x / 10000) b int(x % 10000 / 1000) c int(x % 1000 / 100) d int(x % 100 / 10) e int(x …

休眠后gpio状态_1.Linux电源管理-休眠与唤醒

1.休眠方式在内核中,休眠方式有很多种,可以通过下面命令查看常用的休眠方式有freeze,standby, mem, diskfreeze:冻结I/O设备,将它们置于低功耗状态,使处理器进入空闲状态,唤醒最快,耗电比其它standby, mem, disk方式高standby:除了冻结I/O设备外,还会暂停系统,唤醒较快,耗电比其…

变换之时钟实现

为了更好的利用学过的知识&#xff0c;扎实一下知识&#xff0c;也方便日后的复习&#xff0c;则需要做一些东西热身热身一下 以下是实现的代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title>…

计算机用户名登陆管理员权限,关于win10勿删用户账号下管理员身份导致无法登录系统的问题...

我昨天在控制面板-用户-管理计算机内置账户&#xff0c;在“Zhao Yikang”用户名(另外还有administrator用户&#xff0c;名我没动)属性里面&#xff0c;“隶属于”那个界面里面&#xff0c;删除了administrator账户&#xff0c;同时还保留有一个user账户没动没删。之后重启电脑…

实例31:python

#题目&#xff1a;请输入星期几的第一个字母来判断一下是星期几 #!/usr/bin/python -- coding: UTF-8 -- letter input(“please input:”) #while letter ! ‘Y’: if letter ‘S’: print (‘please input second letter:’) letter input(“please input:”) if lette…

python聚类分析结果很差_python中的聚类分析:value错误:x和y的大小必须相同

我尝试了以下代码&#xff0c;但在执行时&#xff0c;显示以下错误&#xff1a;(ValueError: x and y must be the same size)代码&#xff1a;import pandas as pdimport matplotlib.pyplot as pltfrom sklearn.preprocessing import StandardScalerfrom sklearn.cluster impo…

实例32:python

#按相反的顺序输出列表的值。 #!/usr/bin/python -- coding: UTF-8 -- a [‘one’, ‘two’, ‘three’] for i in a[::-1]: print (i)

整样运用计算机考试,2017年9月计算机二级考试《MS Office高级应用》上机操作题(2)...

字处理题12012级企业管理专业的林楚楠同学选修了“供应链管理”课程&#xff0c;并撰写了题目为“供应链中的库存管理研究”的课程论文。论文的排版和参考文献还需要进一步修改&#xff0c;根据以下要求&#xff0c;帮助林楚楠对论文进行完善。(1)在考生文件夹下&#xff0c;将…

mysql search yum_CentOS 7 yum安装配置mysql

首先去官网下载要用的yum源传送门&#xff1a;http://dev.mysql.com/downloads/repo/yum/yum源文件&#xff1a;/home/mysql57-community-release-el7-8.noarch.rpm是一个rpm包&#xff0c;如果是Gnome&#xff0c;可以选择centos7的软件包安装程序安装即可。也可以用命令的方式…

Django缓存和内置信号

缓存 简单概括就是将对数据库操作查询所得到的数据放入另外一台机器上(缓存)中&#xff0c;当用户再次请求时&#xff0c;直接去缓存中拿&#xff0c;避免对数据库的频繁操作&#xff0c;加快数据的显示时间&#xff0c;需要知道的是&#xff0c;缓存里面的数据一般都设置有超时…

实例33:python

#题目&#xff1a;按逗号分隔列表。 #!/usr/bin/python -- coding: UTF-8 -- L [1,2,3,4,5] s1 ‘,’.join(str(n) for n in L) print (s1)

大工19春计算机文化基础在线测试1,大工19春《计算机文化基础》在线测试1(含答案)...

1.[单选题]第四代计算机所采用的主要逻辑元件是( )。奥鹏作业答案奥鹏大连理工大学作业A.晶体管B.小规模集成电路C.电子管D.大规模和超大规模集成电路正确答案:——D——2.[单选题]二进制数11111010所对应的十进制数是( )。A.250B.252C.253D.255正确答案:——A——3.[单选题]下…

f2 柱状图滚动 钉钉小程序_详解钉钉小程序组件之自定义模态框(弹窗封装实现)...

背景开发钉钉小程序中需要用到模态框 文档里也没有 自己搞一个…效果大概长这个样点击指定按钮&#xff0c;弹出模态框&#xff0c;里面的内容可以自定义&#xff0c;可以是简单的文字提示&#xff0c;也可以输入框等复杂布局。操作完点击取消或确定关闭。开始封装上图所示文件…

Python List reverse()方法

描述 reverse() 函数用于反向列表中元素。 语法 reverse()方法语法&#xff1a; list.reverse() 参数 • NA。 返回值 该方法没有返回值&#xff0c;但是会对列表的元素进行反向排序。 实例 以下实例展示了 reverse()函数的使用方法&#xff1a; #!/usr/bin/python aList [12…

你的第一个Django程序

本文使用Pycharm、Django 2.0.9、Python 3.6环境&#xff0c;本文大纲 建立Django项目建立页面什么是URLconf和ROOT_URLCONFDjango怎么处理URL请求关于URL尾部的“/” 反斜线1. 建立一个Django项目 Application name如果填写会自动帮你建立一个APP&#xff0c;而且APP是必须的&…

闪电对计算机或网络设备的威胁,计算机网络的雷电防护_计算机网络

摘?要 雷电对计算机网络稳定性造成了很多的危害。雷电主要通过电源线、网络线和接地反击的途径来侵入设备&#xff0c;造成设备损坏。如何来确保设备的安全&#xff0c;本文从网络系统的防护、网络线路的防护、及其防雷工程中需要特别考虑过电压防护几个方面提出了防护措施。关…

分割法和填补法_“聚合”法与“分割”法

一门新的思维与实践的科学“聚合”法是宗脉学中“宗脉”关系的根本原则&#xff0c;这是一门新的思维与实践的科学&#xff0c;它的研究角度和方法都不同于任何以往唯物主义与唯心主义学派。“宗”即是整体&#xff0c;本质&#xff0c;聚和&#xff0c;“脉”是本质的分支与脉…

Python join()方法

描述 Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。 语法 join()方法语法&#xff1a; str.join(sequence) 参数 • sequence – 要连接的元素序列。 返回值 返回通过指定字符连接序列中元素后生成的新字符串。 实例 以下实例展示了join()的使用方…

[USACO 2017 Feb Gold] Tutorial

Link: 传送门 A: 分层图最短路&#xff08;其实就是最短路转移时多记录一维的数据 #include <bits/stdc.h>using namespace std; #define X first #define Y second typedef double db; typedef long long ll; typedef pair<int,int> P; const int MAXN105; int n,…