- 浏览: 334397 次
- 性别:
- 来自: 沈阳
文章分类
最新评论
-
znfsky:
找了好一会,原来要手动加链接库,赞一个
codeblocks处理undefined reference to `pthread_create' -
qiankai86:
Thank you!
java平均分配算法 -
yl419440513:
表名称和列名称中文乱码怎么解决呢
ResultSet 对象getTables()的用法 获取表的相关信息 -
sumaolin:
写的挺详细的啊
html marque元素标签属性的参数说明 -
brown802:
我都加过这个包啦,还是有错误
Unable to find parent packages json-default
100个数平均分配到指定数量的人
第一种方法
第二种方法
第一种方法
public class Fenpei { static List<Integer> listCus = new ArrayList<Integer>(); static List<String> persons = new ArrayList<String>(); // static Map<String, String> result = new HashMap<String, String>(); static List<Persons> result = new ArrayList<Persons>(); /** * @param args */ public static void main(String[] args) { int k = 0; List l = new ArrayList(); // 发、数量 for (int i = 0; i < 20; i++) { listCus.add(i); } // 人 for (int j = 0; j < 5; j++) { persons.add("person" + j); } // System.out.println(persons.size()); int personSize = persons.size(); for (int i = 0; i < listCus.size(); i++) { // System.out.println(i); // System.out.println(persons.get(i%personSize)); Persons p = new Persons(); p.setI(i); p.setPersonname(persons.get(i % personSize)); result.add(p); } Iterator it = result.iterator(); while (it.hasNext()) { Persons p = (Persons) it.next(); System.out.println("哪个人 => " + p.getI() + " 分配到 " + p.getPersonname()); } // for (int j = 1; j < persons.size() + 1; j++) { // System.out.println(j); // } } public static class Persons { private Integer i; private String personname; public Integer getI() { return i; } public void setI(Integer i) { this.i = i; } public String getPersonname() { return personname; } public void setPersonname(String personname) { this.personname = personname; } } }
第二种方法
public class FenpeiRen { /** * @param args */ public static void main(String[] args) { Person p1 = new Person("NAME1", 201); Person p2 = new Person("NAME2", 233); Person p3 = new Person("NAME3", 189); Person p4 = new Person("NAME4", 198); Person p5 = new Person("NAME5", 164); Person p6 = new Person("NAME6", 181); Person p7 = new Person("NAME7", 212); Person p8 = new Person("NAME8", 205); Person p9 = new Person("NAME9", 192); Person p10 = new Person("NAME10", 241); Person p11 = new Person("NAME11", 136); Person p12 = new Person("NAME12", 201); Person p13 = new Person("NAME13", 142); Person p14 = new Person("NAME14", 127); Person p15 = new Person("NAME15", 189); Person p16 = new Person("NAME16", 221); List<Person> personList = new ArrayList<Person>(); personList.add(p1); personList.add(p2); personList.add(p3); personList.add(p4); personList.add(p5); personList.add(p6); personList.add(p7); personList.add(p8); personList.add(p9); personList.add(p10); personList.add(p11); personList.add(p12); personList.add(p13); personList.add(p14); personList.add(p15); personList.add(p16); sort(personList,5); } /** * 分组函数 * * @param personList * 总人数列表 * @param groupCount * 分组数量 */ static void sort(List<Person> personList, int groupCount) { // 取得总人数 int personSize = personList.size(); // 如果分组数量小于personsize,则分组 if (groupCount <= personSize) { // 先排序 Collections.sort(personList, new Comparator<Person>() { public int compare(Person p1, Person p2) { return p1.get_capability().compareTo(p2.get_capability()); } }); // 可以取多少次 int qU = (personSize / groupCount) + 1; List<List<Person>> pList = new ArrayList<List<Person>>(); // 排序后的数量 List<List<Person>> sortList = new ArrayList<List<Person>>(); // 分组排序后的数据 for (int i = 0; i < qU; i++) { List<Person> getPerson = new ArrayList<Person>(); for (int j = 0; j < groupCount; j++) { int index = 0; if (j == 0) { index = i + j; } else { index = (j) * groupCount + i; } if(index<personSize){ getPerson.add(personList.get(index)); } } if(getPerson.size()>0){ sortList.add(getPerson); } } //开始分配 for (int j = 0; j < groupCount; j++) { List<Person> listPerson = new ArrayList<Person>(); boolean sort = true; for (int i = 0; i < sortList.size(); i++) { //正向分 if(sort){ if(j<sortList.get(i).size()){ listPerson.add(sortList.get(i).get(j)); } sort=false; } else{//反向分 if(groupCount-(j+1)<sortList.get(i).size()&&groupCount-(j+1)>=0){ listPerson.add(sortList.get(i).get(groupCount-(j+1))); } sort=true; } } if(listPerson.size()>0){ pList.add(listPerson); } } int m = 0; for (List<Person> lp : pList) { m++; System.out.print("当前第 "+m+" 组\r\n"); int totalCa = 0; for(Person p : lp){ totalCa = totalCa + p.get_capability(); System.out.print("能力 "+p.get_capability()+" 名字 "+p.get_name()); } System.out.print("总能力 "+totalCa+"\r\n"); System.out.print("结束\r\n"); } }else{ System.out.println("无法分组,分组数量大于总人数\r\n"); } // Collection.sort(); } }
发表评论
-
auto-comet服务器端向客户端的自动发送
2011-10-10 11:06 2019介绍一个服务器端自动 ... -
关于错误oracle.jdbc.OracleDriver的解决
2010-07-20 09:26 3053在使用tomcat6发布程序时总是出现错误 java.lan ... -
Netty框架
2010-06-25 14:15 3158Netty提供异步的、事件 ... -
敏捷模型2
2010-06-01 13:26 927在一个真正的迭代开发 ... -
如何用Powerdesigner的PDM(物理数据模型)生成数据库及逆向工程(将现有的数据库生成PDM)
2010-06-01 11:56 3320如何用Powerdesigner的PDM(物理数据模型)生成数 ... -
木匠与总管,一则项目管理的小故事
2010-06-01 11:20 1177原来农村盖房子,一般 ... -
软件架构引言之项目管理的问题(转)
2010-06-01 11:16 947软件架构引言之项目管 ... -
常用软件过程——RUP
2010-06-01 10:35 961RUP是用例驱动,以架构 ... -
敏捷模型
2010-05-31 19:07 1186最近正在看java敏捷开发 ... -
weblogic9.2设置虚拟内存
2010-05-20 12:52 1245修改user_projects\domains\base_do ... -
weblogic默认路径
2010-05-17 13:59 3718weblogic中发布的项目都是带路径的,比如http://1 ... -
用Collections.sort方法对list排序有两种方法
2010-05-07 11:55 1507用Collections.sort方法对list排序有两种方法 ... -
java url中的中文章问题
2010-04-27 16:28 1137根据页面设置的编码,在以get方式传值的时候 <he ... -
java常见的几种排序算法
2010-04-23 11:14 859用Java语言实现的各种排序,包括插入排序、冒泡排序、选择排序 ... -
使用 XStream 把 Java 对象序列化为 XML
2010-04-19 15:05 937将java对象完成xml与java对象之间的互相转换,方便好用 ... -
JAVA中浅复制与深复制
2010-04-19 11:21 8111.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变 ... -
jeshop
2010-04-06 23:09 3078struts2+hiberrnate+spring+ognl开 ... -
struts2的action标签
2010-04-02 16:17 1157使用action标签,可以允许在jsp页面中直接调用Actio ... -
eclipse开发ejb3的ant文件
2010-03-29 21:38 926<?xml version="1.0" ... -
extremeComponents资料
2010-03-26 13:26 1021extremeComponents是一个好用的表格插件,可以方 ...
相关推荐
4. **更新聚类中心**:在所有数据点分配完成后,每个簇的聚类中心被更新为该簇内所有点的几何中心,即平均位置。 5. **重复步骤3和4**:这一过程持续进行,直到聚类中心不再显著移动或达到预定的最大迭代次数。 在...
在Java开发中,Quartz 2是一个非常强大的作业调度库,它允许开发者安排任务并在特定时间执行。在本文中,我们将深入探讨如何使用`@PersistJobDataAfterExecution`和`@DisallowConcurrentExecution`注解来通过...
Java KMeans聚类算法是一种广泛应用的数据挖掘技术,用于将数据集分成不同的组或“簇”,使得同一簇内的数据点彼此相似,而不同簇之间的数据点差异较大。在本例中,描述提到了从Pascal语言转换到Java实现,这意味着...
在IT领域,调度算法是操作系统的核心组成部分之一,它负责决定如何在多任务环境中有效地分配处理器资源。本项目涉及的是一个用Java语言实现的调度算法,主要用于处理进程的调度问题。Java作为一种面向对象、跨平台的...
下面将详细讲解如何使用Java实现一个公平的红包随机分配算法。 1. **红包算法的基本原理** 红包算法的核心是确保每个用户在抢红包时,无论先抢后抢,其获得的金额期望值大致相同。为了实现这个目标,我们需要考虑...
SJF算法旨在最小化平均周转时间,优先选择预计运行时间最短的任务执行。在Java中,可以使用优先级队列(PriorityQueue)来存储待执行的任务,任务的优先级由其预计运行时间决定。这种方法通常能提高系统效率,但不...
在Java中实现这些算法,通常需要定义一个进程类来存储进程信息(如进程ID、到达时间、执行时间、优先级等),并编写调度器类来管理进程队列,模拟CPU的分配。你可以通过`src`目录中的代码,了解如何用Java编程实现...
2. 短进程优先(SPF,Shortest Process First):此算法优先选择执行时间最短的进程,以减少平均等待时间。在Java中,可以使用优先级队列来实现这个策略,其中进程的优先级由其执行时间决定。 3. 时间片轮转(RR,...
操作系统是计算机系统的核心组成部分,负责管理和协调硬件与软件资源,其中CPU(中央处理器)的分配算法是操作系统设计中的重要一环。在这个实验“操作系统的CPU分配算法实践”中,我们将探讨几种不同的CPU调度策略...
K-Means是最常用的聚类算法,通过迭代调整质心和数据分配,直至达到稳定状态。此外,层次聚类(Hierarchical Clustering)如单链、全链和平均链方法,以及DBSCAN(基于密度的聚类)也是重要的聚类手段。 链接挖掘...
4. **平滑处理**:为了解决没有出链的网页(“dangling nodes”)问题,可以将这些网页的PageRank平均分配给所有网页,避免PageRank值流失。 在Java中实现PageRank,我们可以遵循以下步骤: 1. **构建链接矩阵**:...
Kmeans.java文件应该包含了K-means算法的Java实现,可能包括数据点的表示、质心的计算、簇的分配等关键函数。 期望最大化(EM)算法主要用于含有隐变量的概率模型参数估计,常用于混合高斯模型(GMM)的聚类。EM...
SJF算法试图通过优先执行预计运行时间最短的进程来减少平均周转时间和平均等待时间。它分为非抢占式和抢占式两种形式。在非抢占式SJF中,一旦进程开始执行,就一直执行到完成;而在抢占式SJF中,如果后来的进程预计...
本文将深入探讨Java环境下实现的四种进程调度算法:先来先服务(FCFS)、短作业优先(SJF)、时间片轮转(RR)以及高响应比优先(HRN)。这些算法在多任务环境中用于决定哪个进程应该获得CPU的执行权,以达到资源分配的公平...
在编程领域,尤其是在Java开发中,理解并掌握各种排序算法是至关重要的技能。"Java算法集锦"这个资源集合了多种排序算法的实现,旨在帮助开发者深入理解和运用这些经典算法。下面将详细介绍其中的一些关键算法及其...
根据给定的文件信息,我们可以总结出以下关键的IT知识点,这些知识点主要集中在操作系统的核心算法模拟上,使用Java Swing作为图形用户界面的实现工具。 ### 1. 处理器调度算法 处理器调度是操作系统中的一项核心...
【Java各种排序算法详解】 排序算法是计算机科学中不可或缺的一部分,尤其在编程语言如Java中,理解并掌握各种排序算法的原理与应用至关重要。本文将详细介绍几种常见的Java排序算法,包括它们的工作机制、优缺点...
同时,程序还统计了平均申请内存大小,这对于了解系统的平均内存需求和资源分配的效率至关重要。内存利用率的计算可以帮助评估算法的性能,而运行时间的记录则反映了算法的效率。 测试程序的输出结果将包括这些关键...
在编程领域,排序算法是数据结构与算法学习中的基础部分,尤其在Java中,了解和掌握各种排序算法对于提升程序性能至关重要。以下是对标题和描述中提到的Java各种排序算法的详细解释,以及它们的实现代码概述。 1)*...