数组的数据换成{12,73,45,69,35}这组数据或者{5,4,3,2,1}这组数据可以成功从小到大排序,但就是换成{17,11,20,3,6}这组数据时,排不了序,输出的为11 11 20 3 6;就很好奇为什么,代码什么的都没有改过
#include<iostream>
using namespace std;
int main()
{//从小到大排序
int n,t,k;
// int a[5]={12,73,45,69,35};//这组可以成功排序
int a[5]={17,11,20,3,6}; //这组不能成功排序
// int a[5]={5,4,3,2,1}; //这组可以成功排序
for(int i=1;i<5;i++)//无序区
{
t=a[i];//取出无序区中的第一个数和有序区中比较
for(int j=i-1;j>=0;j--)//有序区,将数组中的第一个数默认为有序区的数
{
if(t>a[j])
{
//由于无序区的数比有序区的数大,那么直接退出循环
k=j+1;
break;
// 有序区已经有了顺序,即判断当前无序区的数大于,则无序区的数不需要再和前面的有序数作比较
}
else
{
a[j+1]=a[j];
}
}
// 将无序数比较好,找到位置了之后放进去
a[k]=t;
}
for(int i=0;i<5;i++)
{
cout<<a[i]<<" ";
}
}
490020189846121.png _