hotmail_mk 2022-08-12 09:48
浏览 45
已结题

求一个数组排序调整的算法

有一个学生的数组M,每个数组元素s是学生对象,对象结构大致如下:
学生对象(简称s)
学生.姓名(s.n)
学生.性别(s.s)
学生.语文(s.c)
学生.数学(s.m)
学生.英语(s.e)
学生.总分(s.t)
学生.顺序(s.p)

数组M的排序要求是按照学生的总分s.t排序的,假设是10个元素s1-s10。
第一次输入的数组M也是按照总分排好序的,s1的总分最高。
现在的需求是需要改变数组M的顺序,要求如下:
1、需要将s7,s8调整到第2、3的顺序(即s7.p=2; s8.p=3),且只能改变语文成绩。比如增加s7,s8语文成绩,s7,s8总分就会增加。改变的要求见2。
2、改变后的s1.c、s7.c、s8.c的值(语文成绩)不能大于95,s2-s6,s9、s10的语文成绩可以随意增减,但也不能大于95,最终结果s1-s10的语文成绩显得有一定档次,不要断档(我们可以定义3分即为断档)。比如情况1就是比较合理的,情况2就是不合理,有断档:
情况1(可以看出从89-95都有,没有断档):
s1.c=94,
s7.c=95,
s8.c=93,
s2.c=90,
s3.c=88,
s4.c=92,
s5.c=90,
s6.c=91,
s9.c=90,
s10.c=89
情况2(可以看出从89-95基本都有,但s3.c=82,83-88都没有,形成了断档):
s1.c=94,
s7.c=95,
s8.c=93,
s2.c=90,
s3.c=82,
s4.c=92,
s5.c=90,
s6.c=91,
s9.c=90,
s10.c=89,

就想问一下这个需求的算法或者逻辑。谢了!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 8月20日
    • 修改了问题 8月12日
    • 修改了问题 8月12日
    • 修改了问题 8月12日
    • 展开全部

    悬赏问题

    • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
    • ¥15 java写代码遇到问题,求帮助
    • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
    • ¥15 有了解d3和topogram.js库的吗?有偿请教
    • ¥100 任意维数的K均值聚类
    • ¥15 stamps做sbas-insar,时序沉降图怎么画
    • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
    • ¥15 关于#Java#的问题,如何解决?
    • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
    • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计