永发信息网

排序,c++

答案:1  悬赏:10  手机版
解决时间 2021-07-25 21:55
  • 提问者网友:謫仙
  • 2021-07-24 21:53

用插入法排序# include <iostream>
using namespace std;
int main()
{
int a[10],i,m,j,t;
for(i=0;i<10;i++)
cin>>a[i];
for(j=1;j<10;j++)
{if(a[j]<a[0])
{for(t=j-1;t>=0;t--)
{m=a[j];
a[t+1]=a[t];
a[0]=m;}}
else
{for(i=0;i<j;i++)
{if (a[j]>a[i]&&a[j]<a[i+1])
{for(t=j-1;t>i;t--)
{m=a[j];
a[t+1]=a[t];

a[i+1]=m;}}}}}
for(i=0;i<10;i++)
cout<<a[i]<<' ';
return 0;
}

那个高手给我看看什么地方错了

最佳答案
  • 五星知识达人网友:山君与见山
  • 2021-07-24 22:10

看了一会没看懂你代码的意思,你这好像不是插入排序,决定重新编一个真正的插入排序:


# include <iostream>
using namespace std;
int main()
{
int a[10],i,m,j,t;
for(i=0;i<10;i++)
cin>>a[i];
for(j=1;j<10;j++)
{
m=a[j];
t=j;
while(t>0&&a[t-1]>=m)
{
a[t]=a[t-1];
--t;
}
a[t]=m;
}
for(i=0;i<10;i++)
cout<<a[i]<<' ';
system("pause");
return 0;
}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯