<script language="javascript">
function px()
{
var sz=new Array();
var sk=document.getElementById("sj").value;sz=sk.split(","); //在文本框内输入数据,然后以逗号分割开来
//alert(sz[0]);
var len=sz.length; for(var i=0;i<len-1;i++)
{
for(var j=i+1;j<len;j++)
{
if(sz[i]>sz[j])
{
var temp=sz[i];
sz[i]=sz[j];
sz[j]=temp;
}
}
}
document.getElementById("jg").innerHTML=sz;
}
</script>
<form name="form1">
<input type="text" id="sj">
<input type="button" name="btn" onclick="px()" value="排序">
<span id="jg"></span>
</form>
以上方法的排序不成功.文本框内输入1,24,36,5,19后,结果变成1,19,24,36,5
但是直接带入数据到数组里却能正确排序.
代码如下:
<script language="javascript">
function px()
{
var sz=new Array(1,24,36,5,19);
var sk=document.getElementById("sj").value;//sz=sk.split(","); 在文本框内输入数据,然后以逗号分割开来
//alert(sz[0]);
var len=sz.length; for(var i=0;i<len-1;i++)
{
for(var j=i+1;j<len;j++)
{
if(sz[i]>sz[j])
{
var temp=sz[i];
sz[i]=sz[j];
sz[j]=temp;
}
}
}
document.getElementById("jg").innerHTML=sz;
}
</script>
<form name="form1">
<input type="text" id="sj">
<input type="button" name="btn" onclick="px()" value="排序">
<span id="jg"></span>
</form>还望各位指教讨论,谢谢!
function px()
{
var sz=new Array();
var sk=document.getElementById("sj").value;sz=sk.split(","); //在文本框内输入数据,然后以逗号分割开来
//alert(sz[0]);
var len=sz.length; for(var i=0;i<len-1;i++)
{
for(var j=i+1;j<len;j++)
{
if(sz[i]>sz[j])
{
var temp=sz[i];
sz[i]=sz[j];
sz[j]=temp;
}
}
}
document.getElementById("jg").innerHTML=sz;
}
</script>
<form name="form1">
<input type="text" id="sj">
<input type="button" name="btn" onclick="px()" value="排序">
<span id="jg"></span>
</form>
以上方法的排序不成功.文本框内输入1,24,36,5,19后,结果变成1,19,24,36,5
但是直接带入数据到数组里却能正确排序.
代码如下:
<script language="javascript">
function px()
{
var sz=new Array(1,24,36,5,19);
var sk=document.getElementById("sj").value;//sz=sk.split(","); 在文本框内输入数据,然后以逗号分割开来
//alert(sz[0]);
var len=sz.length; for(var i=0;i<len-1;i++)
{
for(var j=i+1;j<len;j++)
{
if(sz[i]>sz[j])
{
var temp=sz[i];
sz[i]=sz[j];
sz[j]=temp;
}
}
}
document.getElementById("jg").innerHTML=sz;
}
</script>
<form name="form1">
<input type="text" id="sj">
<input type="button" name="btn" onclick="px()" value="排序">
<span id="jg"></span>
</form>还望各位指教讨论,谢谢!
if(parseInt(sz[i], 10)>parseInt(sz[j], 10))
那么你的+(sz[i]) 什么意思,难道也是转化数据类型的意思??还望指教谢谢!
字符串之间比较的话先比第一位,再比第二位……
需要 parseInt(sz[i],10)>parseInt(sz[j],10),1楼正解
var sk=document.getElementById("sj").value;sz=sk.split(","); //在文本框内输入数据,然后以逗号分割开来
sz.sort(function(a,b){
return a-b
})
document.getElementById("jg").innerHTML=sz;
for (var step = this.length >> 1; step > 0; step >>= 1)
{
for (var i = 0; i < step; ++i)
{
for (var j = i + step; j < this.length; j += step)
{
var k = j, value = this[j];
while (k >= step && this[k - step] > value)
{
this[k] = this[k - step];
k -= step;
}
this[k] = value;
}
}
}
不过我看得不太懂.对冒泡和选择的,对于很多初级人员来说很好理解,但是这个算法比较不好理解,谁能进行一下详细讲解,方便更多初学者能了解和学习一下!谢了!