请教一个好的算法 有一个浮点型数组 {1.1, 2.2, 3.3, 1.1, 1.1, 3.3}怎样统计相同的数值出现过的次数?如: 1.1 出现过3次 2.2 出现过1次 3.3 出现过2次 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 放到一个HashTable表里如果有重复的就加1! listhome(不想睡)(好好学习) 谢谢你的回复,这个方法我想过,虽然可以解决问题,但我想求得一个更好的算法 float[] arrayF = {1.1f, 2.2f, 3.3f, 1.1f, 1.1f, 3.3f};float temp;string result = "|";int timeStart;int timeEnd;int time;for(int i=0; i<arrayF.Length; i++){ temp = arrayF[i]; if(result.IndexOf("|"+temp+",") > -1) { timeStart = result.IndexOf(",",result.IndexOf("|"+temp+",")+1)+1; timeEnd = result.IndexOf("|",result.IndexOf("|"+temp+",")+1); time = int.Parse(result.Substring(timeStart,timeEnd-timeStart)); time++; result = result.Substring(0,timeStart)+ time.ToString() +result.Substring(timeEnd); } else { result += temp.ToString() + ",1|"; }}Response.Write(result); float[] arrayF = {1.1f, 2.2f, 3.3f, 1.1f, 1.1f, 3.3f};float temp;string result = "|";int timeStart;int timeEnd;int time;for(int i=0; i<arrayF.Length; i++){ temp = arrayF[i]; if(result.IndexOf("|"+temp+",") > -1) { timeStart = result.IndexOf(",",result.IndexOf("|"+temp+",")+1)+1; timeEnd = result.IndexOf("|",result.IndexOf("|"+temp+",")+1); time = int.Parse(result.Substring(timeStart,timeEnd-timeStart)); time++; result = result.Substring(0,timeStart)+ time.ToString() +result.Substring(timeEnd); } else { result += temp.ToString() + ",1|"; }}result = result.Substring(1,result.Length-2);string[] arr = result.Split('|');for(int j=0; j<arr.Length; j++){ Response.Write(arr[j].Split(',')[0]); Response.Write("---"); Response.Write(arr[j].Split(',')[1]); Response.Write("次"); Response.Write("<br>");} float[] myarray = {1.1F,2.2F,3.3F,1.1F,1.1F,3.3F,2.2F}; int num = 0; int i,j,k; for(i=0;i<myarray.Length-1;i++) { num = 0; bool same = false; for(k=i-1;k>=0;k--) { if(myarray[k] == myarray[i]) { same = true; break; } } if(!same) { for(j=i;j<myarray.Length;j++) { if(myarray[i] == myarray[j]) { num++; } } Console.Write(myarray[i].ToString()); Console.Write(" "); Console.WriteLine(num.ToString()+"次"); } } ibatis 语句怎么写 ? 将一个aspx页分解为近十个用户控件(ascx),对性能有什么影响? .net2.0下多个gridview的数据导入到一个Excel的多个sheet中 failed to start monitoring changes to because access is denied vs2003验证控件的分组问题 asp.net下,向word中插入图片! 矛盾,又一个动态加载控件的问题 111111111111 关于 datagrid控件的更新及删除按钮 显示数据表的特别奇怪的一个问题!!(在线等待) 秘密 dropdownlist的问题
谢谢你的回复,这个方法我想过,虽然可以解决问题,但我想求得一个更好的算法
float temp;
string result = "|";
int timeStart;
int timeEnd;
int time;
for(int i=0; i<arrayF.Length; i++)
{
temp = arrayF[i];
if(result.IndexOf("|"+temp+",") > -1)
{
timeStart = result.IndexOf(",",result.IndexOf("|"+temp+",")+1)+1;
timeEnd = result.IndexOf("|",result.IndexOf("|"+temp+",")+1);
time = int.Parse(result.Substring(timeStart,timeEnd-timeStart));
time++;
result = result.Substring(0,timeStart)+ time.ToString() +result.Substring(timeEnd);
}
else
{
result += temp.ToString() + ",1|";
}
}
Response.Write(result);
float temp;
string result = "|";
int timeStart;
int timeEnd;
int time;
for(int i=0; i<arrayF.Length; i++)
{
temp = arrayF[i];
if(result.IndexOf("|"+temp+",") > -1)
{
timeStart = result.IndexOf(",",result.IndexOf("|"+temp+",")+1)+1;
timeEnd = result.IndexOf("|",result.IndexOf("|"+temp+",")+1);
time = int.Parse(result.Substring(timeStart,timeEnd-timeStart));
time++;
result = result.Substring(0,timeStart)+ time.ToString() +result.Substring(timeEnd);
}
else
{
result += temp.ToString() + ",1|";
}
}
result = result.Substring(1,result.Length-2);
string[] arr = result.Split('|');
for(int j=0; j<arr.Length; j++)
{
Response.Write(arr[j].Split(',')[0]);
Response.Write("---");
Response.Write(arr[j].Split(',')[1]);
Response.Write("次");
Response.Write("<br>");
}
int num = 0;
int i,j,k;
for(i=0;i<myarray.Length-1;i++)
{
num = 0;
bool same = false;
for(k=i-1;k>=0;k--)
{
if(myarray[k] == myarray[i])
{
same = true;
break;
}
}
if(!same)
{
for(j=i;j<myarray.Length;j++)
{
if(myarray[i] == myarray[j])
{
num++;
}
}
Console.Write(myarray[i].ToString());
Console.Write(" ");
Console.WriteLine(num.ToString()+"次");
}
}