标题:简单的循环语句提问
只看楼主
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
得分:0 
插入排序问题
#include <stdio.h>
main()
{
int i, j, temp,item[5]={23,12,55,98,43};
for (i=1;i<n;i++;)
{
temp=item[i];
j=i-1;
while (j>=0 && temp<item[j])
{
item[j+1]=item[j];
j--;
}
item[j+1]=temp;
}
}
这个程序求助两天了,都没有理解,能否帮我解释下,下面的几处不能理解!!!
[QUOTE]j=i-1;
while (j>=0 && temp<item[j])
{
item[j+1]=item[j];
j--;
}
item[j+1]=temp;
[/QUOTE]
2007-01-31 16:47
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
得分:0 
当i=1时,temp=item[1]=12;j=0;while(真),就进入循环(如果后面的一个数比前面的数小,就把前面的赋值到它后面的一个数上。)此时数组的排列是,item[5]={12,23,55,98,43}.
当i=2时,temp=item[2]=55,j=1;while(假),终止循环。
当i=3时~~~~~~~~~~~~~~~~~
然后依次进行~~~~~~~~~~
顶~~~~~~~~~~~~

~~我的明天我知道~~
2007-01-31 17:08
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
得分:0 
O  ,xiexie
2007-02-01 01:54
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
得分:0 
[QUOTE] item[j+1]=item[j];
j--;
}
item[j+1]=temp;
[/QUOTE]

既然把item[j]的值,赋给了item[j+1]
那么最后一句话,为什么又把temp赋值给了item[j+1],不是有把12赋值给了item[j+1]了吗

j--在这里起什么作用???
2007-02-01 20:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-119004-1-1.html




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

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