博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于java的延号排序方法,使用权重
阅读量:4113 次
发布时间:2019-05-25

本文共 1583 字,大约阅读时间需要 5 分钟。

权重排序(java)Q:我们去饭店排队等号吃饭,每天最多100桌客人,这100桌客人拿到的排队号是不会重复的(1-100)。如果叫号一阵子没人应答,这桌客人就要被延号三桌。如果延号的情况比较多,饭店就很难根据排队号来准确的排序了,那么如何保证排序始终是对的呢?

Clue:不用排队号排序,而拓展出依赖排序号的权重(排队号*容量=权重)每当客人被延号就找出他们往后数两桌的客人的权重,在这个基础上+1,这样就算每桌客人都被延号也可以保证按权重排序不会乱了

import java.util.ArrayList;import java.util.List;public class WeightSort {    public void Test(){        List
voList = new ArrayList(); for(int i=0; i < 30; i++){ voList.add(i); } Integer QuqueStatus = 10; Integer getWeightResult = this.updateWaitQueue(voList,QuqueStatus); System.out.println(getWeightResult); } private Integer updateWaitQueue(List
voList,Integer QuqueStatus) { int FirstMiss = 10; //获取有序的appoId集合 List
appoIdList = new ArrayList(); for(int i=0; i < voList.size(); i++){ appoIdList.add(voList.get(i)); } Integer nowDOAppId = 1; Integer nowIndex = appoIdList.indexOf(nowDOAppId); Integer targetIndex = null; if(FirstMiss==QuqueStatus){ if(nowIndex == voList.size() - 1){ targetIndex = nowIndex + 1; } else{ targetIndex = nowIndex + 2; } } Integer getWeightResult =0; // if(voList.size() != 1 && null != targetIndex){ getWeightResult = this.getNewWeight(targetIndex); } return getWeightResult; } //增加权重 private Integer getNewWeight(Integer targetIndex){ //参数校验省略 Integer nowNewWeight = targetIndex ++; return nowNewWeight; }}

 

转载地址:http://eyrsi.baihongyu.com/

你可能感兴趣的文章
JDBC核心技术 - 下篇
查看>>
一篇搞懂Java反射机制
查看>>
【2021-MOOC-浙江大学-陈越、何钦铭-数据结构】树
查看>>
MySQL主从复制不一致的原因以及解决方法
查看>>
RedisTemplate的key默认序列化器问题
查看>>
序列化与自定义序列化
查看>>
ThreadLocal
查看>>
从Executor接口设计看设计模式之最少知识法则
查看>>
OKhttp之Call接口
查看>>
application/x-www-form-urlencoded、multipart/form-data、text/plain
查看>>
关于Content-Length
查看>>
WebRequest post读取源码
查看>>
使用TcpClient可避免HttpWebRequest的常见错误
查看>>
EntityFramework 学习之一 —— 模型概述与环境搭建 .
查看>>
C# 发HTTP请求
查看>>
启动 LocalDB 和连接到 LocalDB
查看>>
Palindrome Number --回文整数
查看>>
Reverse Integer--反转整数
查看>>
Container With Most Water --装最多水的容器(重)
查看>>
Longest Common Prefix -最长公共前缀
查看>>