帮我改一下 插入排序过程

题目

img

img

我的程序

#include <bits/stdc++.h>
using namespace std;
int i,j;
int main()
{
    int a[11000],n,temp[11000];
    cin>>n;
    for(i=1;i<=n;i++)
    {
        cin>>a[i];
        temp[i]=a[i];
        for(j=1;j<=i;j++)
        {
            cout<<temp[j]<<' ';
        }
        cout<<endl;
        sort(a+1,a+j);
        for(j=1;j<=i;j++)
        {
            cout<<a[j]<<' ';
        }
        cout<<endl;
    }
    
    
    return 0;
}



帮我改一下,谢谢

#include <bits/stdc++.h>
using namespace std;
int a[11000],n,temp[11000];
int i,j;
int main()
{
    cin>>n;
    for(i=1;i<=n;i++)
    {
        cin>>a[i];
        for(j=1;j<=i;j++)
        {
            cout<<a[j]<<' ';//直接输出
            temp[j]=a[j];
        }
        cout<<endl;
        sort(a+1,a+i+1);//记得+1
        bool same=1;
        for(j=1;j<=i;j++)//判断排序后是否变化
        {
            if(temp[j]!=a[j])
            {
                same=0;
                break;
            }
        }
        if(same)continue;//无变化不用输出
        for(j=1;j<=i;j++)
        {
            cout<<a[j]<<' ';
        }
        cout<<endl;
    }
    return 0;
}