拆入排序法为啥第一个总是不换位置
输入56,4 ,6 ,34 ,6 ,8 ,5 ,67 ,5 ,4结果数组的第一位总是不变,为啥吗
56
4
4
5
5
6
6
8
34
67
Running Time:166ms
#include<stdio.h>
#include<time.h> //用到clock()函数
#include<iostream>
int main() {
int begintime,endtime;
begintime=clock(); //计时开始
int a[10]= {56,4 ,6 ,34 ,6 ,8 ,5 ,67 ,5 ,4};
// for(int i=0; i<10; ++i)
//{ std::cin>>a[i];
// }
for(int j=2; j<10; ++j)
{ int tem=a[j];int i=0;
for(i=j-1; i>0&&a[i]>tem; --i)
{ //int tem=a[i+1];
a[i+1]=a[i];
//a[i]=tem;
}
a[i+1]=tem;
}
for(int i=0; i<10; ++i)
{ std::cout<<a[i]<<std::endl;
}
endtime = clock(); //计时结束
printf("\n\nRunning Time:%dms\n", endtime-begintime);
return 0;
}