我爱Aspx >> Asp.Net >> 【重要】求教一个随机配对的算法问题,要求效率要高,能够很快地处理万条左右数据。第5楼. 由 intotheland 于 2007-7-1 11:41:25 发表
先把男女学生分别放在2个List<学生>列表A,B中,然后根据数量少的列表(假设A)按顺序提取学生对象,在数量多的学生列表(假设B)中用随机数提取一个学生对象作为配对,提取完后将此学生对象从列表B中删除,随机数的范围就是B的大小.
这个是我的思路,我没验证,应该不会超过3秒吧.
//假设all为存放所有学生的类
List<学生> man=new List<学生>();//存放男学生类
List<学生> woman=new List<学生>();//存放女学生类
List<学生> temp1=null;
List<学生> temp2=null;
List<学生清单> listStudent=new List<学生清单>();
学生清单 stduentList=null;
System.Random random=new System.Random();
foreach(学生 st in all){
if(st.参加){
if(st.性别){//男学生
man.add(st);
}
else{
woman.add(st);
}
}
}
if(man.Length<woman.Length){
temp1=man;
temp2=woman;
}
else
{
temp1=woman;
temp2=man;
}
int index=0;
Ҷƪл˵?
C#中,如何读取ORACLE的表中的BL..[07-06]
求用DataSet绑定DataGridView,实..[07-06]
串口通讯中的7位数据位,和8位数..[07-06]
问一下,winform大家用何种方式显..[07-06]
把其他系统的数据转出成用友标准..[07-06]
向数据库中插入不了记录[07-06]
一个关于数据源的问题,目前还没有..[07-06]
谁有struts的数据库分页的例子,求..[07-06]
请问变量yxs1和yxs2在取出数据表..[07-06]
怎么在jsp中显示oracle数据库中的..[07-06]
加上Me和不加的区别?[07-06]
checkbox入门问题,麻烦各位[07-06]
线程如何挂起和继续?要使用最新..[07-06]
学习哪门Web开发语言好?[07-06]
窗口中的控件放不下了怎么办?[07-06]
超级简单的问题~遍历文件[07-06]
字符串怎么转换成日期?[07-06]
关于反射的效率问题[07-06]
初学三层结构问题[07-06]
窗口刷新闪烁问题[07-06]