插入排序问题
#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;
}
}
这个程序很难理解啊,求高手指导!!!谢谢
希望详细点!!!
----------------解决方案--------------------------------------------------------
小看了,编译肯定有问题吧?
n初始值都没有赋,不可能通过编译的.
----------------解决方案--------------------------------------------------------
改了一下:
#include <stdio.h>
int main()
{
int i, j, temp,item[5] = {23,12,55,98,43};
for(i = 1;i < 5;i++)
{
temp = item[i];
j = i - 1;
while (j>=0 && temp<item[j])
{
item[j+1]=item[j];
j--;
}
item[j+1]=temp;
}
for (i = 0;i < 5;i++)
printf("%d ",item[i]);
printf("\n");
getch();
return 0;
}
----------------解决方案--------------------------------------------------------
好象确实有点问题
item[i];不是和item[j+1]一样的么,为何有temp=item[i]和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-1-30 20:07:40编辑过]
----------------解决方案--------------------------------------------------------
有人帮忙解释下这段程序吗?
----------------解决方案--------------------------------------------------------
item[5]={23,12,55,98,43};
应该是不可以的,只有静态数组和外部数组才可以赋初值
----------------解决方案--------------------------------------------------------
就像玩扑克一样,一些毫无顺序的扑克放在了桌面上,一张一张的拿,按顺序放到手里,就是这样!
----------------解决方案--------------------------------------------------------