C ++中的插入排序程序
#include"iostream"
using namespace std;
int main(){
int i,temp;
int marks[5]={12,11,13,5,6};
//this loop go through all element
//(staring from 2 to 5,
//assuming that first element is already sorted)
for(int j=1;j<5;j++){
i=j-1;
temp=marks[j];
while(i>=0 && marks[i]>temp){
marks[i+1]=marks[i];
i--;
}
marks[i+1]=temp;
}
//prints all the elements..
for(int z=0;z<5;z++){
cout<<marks[z]<<" ";
}
return 0;
}
我们可以写标记[j] =标记[i]吗?内部while循环而不是mark [i + 1] = marks [i];
如果没有,为什么?
答案 0 :(得分:0)
所以答案是否定的-不一样
以j = 2为例,while循环从i = 1开始
第一次迭代,marks [i + 1] = marks [i],i + 1与j相同,但随后i--,因此在while循环结束时,i最终为0。 >
对于while循环中的第二次迭代,marks [i + 1] = marks [i],i + 1与j不同。