假设一arraylist : 1 3 3 5 5 6 (已经排序好)
能在新的arraylist中输出各个元素出现的次数(最好的算法):1 2 2 1 小弟用了顺序查找,感觉效率很低(数据量大),寻求最佳的算法 谢谢!
能在新的arraylist中输出各个元素出现的次数(最好的算法):1 2 2 1 小弟用了顺序查找,感觉效率很低(数据量大),寻求最佳的算法 谢谢!
解决方案 »
- 都来下,关于winform,怎么使窗体变暗然后出现提示框?
- 真是见到鬼了。。。。。
- c# 路径的一些问题
- 怎样将一串类似1100101110这样的字符串转化为字符
- 在内容页中如何给母版页控件的事件赋一个处理的方法????查了好多都不行 C# asp.net2.0
- 昨天程序还好的,今天就不正常了,急
- 求教C#实现FTP上传下传
- 百分讨论一个关于自己做Combobox的问题
- 为什么Char和Char[]没有ToUpper/ToLower这样的函数,String才有呢?
- 我的VS.NET2002中第二张碟有个文件读不出来,如果我下一张该碟的ISO并装入虚拟光驱中,能顺利安装成功吗?
- 一个奇怪的问题... ??
- 关于CauseValidation验证
不知道数据量究竟有多大...
很大的情况可以使用数据库...然后使用SQL 的分组计数
C#的运行效率永远也不会好过c++如果是多CPU系统(包括超线程)建议使用并行计算的方式.
Arraylist 数据统计计数Class Count
{
int Data;
int Count=0;
}Count temp=new Count();
temp.Data=你的数据[0];
for(int a=0;a<你的数据.Count;a++)
{
if(temp.Data==你的数据[a])
{
temp.Count++; }
else
{
数据统计计数.Add(temp); temp=new Count();
temp.Data=你的数据[a];
temp.Count++;
}
}
数据统计计数.Add(temp);
伪代码就是这样了
你的那个算法是行不通的!
不过只要有可能 我一定会把它搞到sql里 或者 xml里 呵呵 应该就好搞了
double m,n;
ArrayList arrIndex=new ArrayList ();
for(int i=0;i<arr.Count;i++)//排序后的arr
{
m=Convert.ToDouble(arr[i]);
n=Convert.ToDouble(arr[i+1]);
if(m==n)
index++;
else
if (index==1)
{
arrIndex.Add (1);
}
else
{
arrIndex.Add (index);
index=1;
}
} //输出存储统计次数的数组内容
string strIndex=string.Empty ;
for(int i=0;i<arrIndex.Count ;i++)
{
strIndex+=arrIndex[i].ToString ()+" ";
}
MessageBox.Show (strIndex);
我只会将极值在查询分析器中列出在表格中.
ArrayList arrayint=new ArrayList ();
int index=1;
ArrayList array1=new ArrayList ();
array1 .Add ("1");
array1 .Add ("3");
array1 .Add ("5");
array1 .Add ("3");
array1 .Add ("2");
array1 .Add ("5");
array1 .Sort ();
int m=0;
int n=0; for(int i=0;i<array1.Count ;i++)
{
m=Convert.ToInt32 ( array1 [i].ToString ());
if(i<array1.Count-1 )
n=Convert.ToInt32 ( array1 [i+1].ToString ());
else
{
n=99999;
}
if(m==n)
{
index++;
}
else
{
if(index==1)
arrayint .Add (1);
else
{
arrayint .Add (index);
index=1;
}
}
} foreach(object obj in arrayint )
{
Console.WriteLine ("{0}",(int)obj);
}