- 浏览: 335885 次
- 性别:
- 来自: 沈阳
文章分类
最新评论
-
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 2042介绍一个服务器端自动 ... -
关于错误oracle.jdbc.OracleDriver的解决
2010-07-20 09:26 3059在使用tomcat6发布程序时总是出现错误 java.lan ... -
Netty框架
2010-06-25 14:15 3167Netty提供异步的、事件 ... -
敏捷模型2
2010-06-01 13:26 938在一个真正的迭代开发 ... -
如何用Powerdesigner的PDM(物理数据模型)生成数据库及逆向工程(将现有的数据库生成PDM)
2010-06-01 11:56 3326如何用Powerdesigner的PDM(物理数据模型)生成数 ... -
木匠与总管,一则项目管理的小故事
2010-06-01 11:20 1183原来农村盖房子,一般 ... -
软件架构引言之项目管理的问题(转)
2010-06-01 11:16 965软件架构引言之项目管 ... -
常用软件过程——RUP
2010-06-01 10:35 975RUP是用例驱动,以架构 ... -
敏捷模型
2010-05-31 19:07 1200最近正在看java敏捷开发 ... -
weblogic9.2设置虚拟内存
2010-05-20 12:52 1253修改user_projects\domains\base_do ... -
weblogic默认路径
2010-05-17 13:59 3731weblogic中发布的项目都是带路径的,比如http://1 ... -
用Collections.sort方法对list排序有两种方法
2010-05-07 11:55 1516用Collections.sort方法对list排序有两种方法 ... -
java url中的中文章问题
2010-04-27 16:28 1144根据页面设置的编码,在以get方式传值的时候 <he ... -
java常见的几种排序算法
2010-04-23 11:14 866用Java语言实现的各种排序,包括插入排序、冒泡排序、选择排序 ... -
使用 XStream 把 Java 对象序列化为 XML
2010-04-19 15:05 942将java对象完成xml与java对象之间的互相转换,方便好用 ... -
JAVA中浅复制与深复制
2010-04-19 11:21 8411.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变 ... -
jeshop
2010-04-06 23:09 3090struts2+hiberrnate+spring+ognl开 ... -
struts2的action标签
2010-04-02 16:17 1163使用action标签,可以允许在jsp页面中直接调用Actio ... -
eclipse开发ejb3的ant文件
2010-03-29 21:38 932<?xml version="1.0" ... -
extremeComponents资料
2010-03-26 13:26 1026extremeComponents是一个好用的表格插件,可以方 ...
相关推荐
Java作为一种广泛应用的编程语言,提供了丰富的工具来实现各种排序算法。以下将详细解释标题和描述中涉及的几种排序算法的Java实现。 1. **计数排序(RadixSort.java)** 计数排序是一种非基于比较的排序算法,适用...
4. **更新聚类中心**:在所有数据点分配完成后,每个簇的聚类中心被更新为该簇内所有点的几何中心,即平均位置。 5. **重复步骤3和4**:这一过程持续进行,直到聚类中心不再显著移动或达到预定的最大迭代次数。 在...
然后,算法会根据链接关系分配PageRank值,一个网页的PageRank值会被平均分给链接出去的所有网页。同时,为了防止循环链接(如A链接B,B链接回A)导致PageRank值无法收敛,引入了一个damping factor(衰减因子,通常...
HashMap提供了O(1)的平均时间复杂度来执行插入、删除和查找操作,但在最坏的情况下,如果哈希函数分配得不好,可能会退化为O(n)。 而TreeMap则使用了红黑树(一种自平衡二叉查找树)作为其底层实现。这意味着每个...
凝聚层次聚类算法的实现相对复杂,但下面是一个简化的JAVA代码示例,可以帮助理解其实现的基本思路: ```java import java.util.ArrayList; import java.util.List; public class AgglomerativeClustering { ...
每一步可以视为从当前的瓶子中选择一部分倒入新的空瓶,直到所有酒均被平均分配。 Java语言作为面向对象的编程语言,非常适合解决这类问题。我们可以定义一个`Bottle`类来表示每瓶酒,包括它的容量和当前的剩余量。...
算法 目前,我的术语项目分析程序由 Java 组成。 首先,整体的实现方法是找一条移动平均线来找到一个交易点。 移动平均线是很多人在炒股的参考资料,不能忽视,因为信息量很大。 下图是买卖算法的代码实现。 首先,...
4. **平滑处理**:为了解决没有出链的网页(“dangling nodes”)问题,可以将这些网页的PageRank平均分配给所有网页,避免PageRank值流失。 在Java中实现PageRank,我们可以遵循以下步骤: 1. **构建链接矩阵**:...
Java中,贪心算法常用于解决资源分配、任务调度等问题,如霍夫曼编码、活动选择问题等。 九、分治策略 分治策略将大问题分解为小问题,分别解决后再合并答案。Java中的快速排序、归并排序就是分治策略的典型应用。 ...
K-Means是最常用的聚类算法,通过迭代调整质心和数据分配,直至达到稳定状态。此外,层次聚类(Hierarchical Clustering)如单链、全链和平均链方法,以及DBSCAN(基于密度的聚类)也是重要的聚类手段。 链接挖掘...