代码执行效率问题!
这个是小弟写的程序
[code]
<html>
<head>
<title>输出测试</title>
<script language="javascript">
function js()
{
var nl; //存放字符长度
var i; //定义循环种子
var s; //定义字符变量
var k; //定义存放数字
var tn=""; //定义存放最后结果
var example=document.all.tx.value; //获取字符例子
nl=document.all.tx.value.length; //计算输入字符串的长度
s=pl(example,nl);
for(i=0;i<s.length;i++)
{
k=s.charAt(i);
tn+=k+"有"+nu(k,nl,example)+"个\n";
}
document.all.area1.value=tn
}
function pl(x,y) //去掉相同的字符
{
var i,j,s,n;
var same=new Array();
var tsame=new Array();
var text="";
for(s=0;s<y;s++) //初始化数组1
{
same[s]=x.charAt(s)
}
for(n=0;n<y;n++) //初始化数组2
{
tsame[n]="";
}
for(i=0;i<y;i++)
{
var k=0;
for(j=0;j<y;j++)
{
if(same[i]!=tsame[j])
{
k+=1;
}
}
if(k==y)
{
tsame[i]=same[i];
}
text+=tsame[i];
}
return text;
}
function nu(x,y,z) //判断相同字符一共有几个
{
var i;
var zf=0;
for(i=0;i<y;i++)
{
if(z.charAt(i)==x)
{
zf+=1;
}
}
return zf;
}
</script>
</head>
<body>
输入内容:<br>
<textarea rows = "5" cols= "30" name = "tx" ></textarea>
<input type = "button" value = "提 交" onclick = "js()">
<br><br>
<textarea name = "area1" rows = "20" cols = "30" readonly>
</textarea>
</body>
</html>
[/code]
////////////这个是无忧上面的大侠帮我改了一下的代码
[code]
<html>
<head>
<title>输出测试</title>
<script language="javascript">
function js()
{
var hash = [];
for (var i = 0, s = document.all.tx.value; i < s.length; ++i)
{
var c = s.charAt(i);
hash[c] = hash[c] == null ? 1 : hash[c] + 1;
}
var buffer = [];
for (var c in hash)
{
buffer.push(c + ": " + hash[c]);
}
document.all.area1.value = buffer.join("\n");
}
</script>
</head>
<body>
输入内容:<br>
<textarea rows= "5" cols = "30" name = "tx"></textarea>
<input type = "button" value = "提 交" onclick = "js()">
<br><br>
<textarea name = "area1" rows = "20" cols = "30" readonly>
</textarea>
</body>
</html>
[/code]
如果输入一大篇文章,我的代码会执行的很慢。甚至会死机
而下面改进的那个代码就执行的非常快
那里的问题啊?
那位大哥哥能给我个详细的答案啊
而且能把改进的代码给我加个详细的注释
他的那个代码有些地方我看不明白
谢谢了
谢谢了
问题点数:20、回复次数:0Top




