请前辈帮忙解答两道数据结构的题目

时间:2021-04-17 10:28:53
1、冒泡排序的排序部分子程序:
while (!change)
{
change=1;
for (j=index;j>0;j--)
{
for (I=0;I<j-1;I++)
{
if (list[i]>list[I+1])
{list[I]交换list[I+1];
change=0
}
}
}

我认为while()循环好象并不是必须的,对不?
2、插入排序子程序部分:
void insertsort(int *list,int index)
{int I,j,k;
int insertnode; /欲插入的数值/
  for (I=1;I<index;I++)
  { insertnode=list[I];
j=I-1;
while (j>=0&& insertnode<list[j])
{list[j+1]=list[j];
j--;
}
list[j+1]= insertnode
}
}


这个程序好象是错误的,比如94678,按这个程序执行第一次后会变成946789,多出一个9来,不知道是不是我的理解错了