| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1454 人关注过本帖
标题:[求助]斑竹 蓝的和红的是什么意思啊?有甚作用?
只看楼主 加入收藏
yuanquan001
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2007-9-23
收藏
 问题点数:0 回复次数:8 
[求助]斑竹 蓝的和红的是什么意思啊?有甚作用?
<script language="javascript">
var x=new Array(55,80,23,30,20,76);
document.write("调用函数前x:"+x+" ");
sort(x);
document.write("调用函数后x:"+x+" ");
function sort(x)
{
for(j=0;j<x.length;j++)
for(i=0;i<x.length;i++)
if(x[i]>x[i+1])
{ t=x[i];
x[i]=x[i+1];
x[i+1]=t;}
}

</script>
搜索更多相关主题的帖子: 斑竹 
2007-11-15 14:14
madpbpl
Rank: 4
等 级:贵宾
威 望:11
帖 子:2876
专家分:244
注 册:2007-4-5
收藏
得分:0 

这是一个数组排序
红色部分是比较两个相邻的数,如果前一个数比后一个数大,则这两个数和互换。

2007-11-15 14:29
lmhllr
Rank: 8Rank: 8
等 级:贵宾
威 望:44
帖 子:1504
专家分:42
注 册:2005-5-12
收藏
得分:0 
这就是传说中的冒泡排续了吧.呵呵...


<script language=\"javascript\">
var x=new Array(55,80,23,30,20,76);
document.write(\"调用函数前x:\"+x+\" \");
sort(x);
document.write(\"调用函数后x:\"+x+\" \");
function sort(x)
{
for(j=0;j<x.length;j++)//一个for循环,遍历x数组
for(i=0;i<x.length;i++)
if(x[i]>x[i+1])//红色部分为:如果前面那个值大于后面的,交换两个变量的值,C里面经常用到这个
{ t=x[i];
x[i]=x[i+1];
x[i+1]=t;}
}

</script>
2007-11-15 14:32
yuanquan001
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2007-9-23
收藏
得分:0 

我觉得地一个for循环就没用,
同样第2个for循环不也遍历了吗?
斑竹,我环视不明白

2007-11-15 14:35
lmhllr
Rank: 8Rank: 8
等 级:贵宾
威 望:44
帖 子:1504
专家分:42
注 册:2005-5-12
收藏
得分:0 
如果没有第一个循环的话,第一个数只判断一次,这样的话会造成不正确的结果

你可以试着把第一个循环去掉看看结果是不是错的

其实,个人认为,这种写法可读性比较差

我觉得应该可以这样改

<script language=\"javascript\">
var x=new Array(55,80,23,30,20,76);
document.write(\"调用函数前x:\"+x+\" \");
sort(x);
document.write(\"调用函数后x:\"+x+\" \");
function sort(x)
{
for(j=0;j<x.length;j++)
for(i=j;i<x.length;i++)
if(x[j]>x[i+1])
{
t=x[j];
x[j]=x[i+1];
x[i+1]=t;
}
}

</script>
2007-11-15 14:44
yuanquan001
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2007-9-23
收藏
得分:0 

斑竹,指导一下吧。。。。。。

2007-11-15 14:44
yuanquan001
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2007-9-23
收藏
得分:0 
太强大了,斑竹,我看明白了
2007-11-15 14:46
zhulei1978
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:53
帖 子:1351
专家分:1200
注 册:2006-12-17
收藏
得分:0 
一楼的代码做了很多重复比较,可以做如下优化:
<script language="javascript">
var x=new Array(55,80,23,30,20,76);
document.write("调用函数前x:"+x+" ");
sort(x);
document.write("调用函数后x:"+x+" ");
function sort(x)
{
for(j=x.length;j>1;j--)
for(i=0;i<j-1;i++)
if(x[i]>x[i+1])
{ t=x[i];
x[i]=x[i+1];
x[i+1]=t;}
}

</script>

其实我就是改变社会风气,提高少女素质,刺激电影市道,提高年轻人内涵,玉树临风,风度翩翩的整蛊专家,我名叫古晶,英文名叫JingKoo!
2007-11-20 21:07
aoxiang218
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-4-18
收藏
得分:0 
冒泡法不是这样的
冒泡法不是这样的
2008-04-18 14:42
快速回复:[求助]斑竹 蓝的和红的是什么意思啊?有甚作用?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015182 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved