//Author: Hao
#include<iostream>
using namespace std;
void insertsort(int a[],int length) //直接插入排序
{
int i,j;
for(i=2;i<=length;i++)
{
if(a[i]<a[i-1])
{
a[0]=a[i]; //哨兵
for(j=i-1;a[0]<a[j];j--) a[j+1]=a[j]; //记录后移
a[j+1]=a[0]; //插入到正确位置
}
}
}
int main(void)
{
int a[100] , length = 0;
int i=1;
while(1)
{
int c;
cin>>c;
if(c >= 0)
{
a[i] = c;
i++;
length++;
}
else break;
}
//length = sizeof(a) / sizeof(a[1]);
cout<<length<<endl;
for(int j=1;j<=length;j++)
{
cout<<a[j]<<" ";
}
cout<<endl;
insertsort(a,length); //调用
for(int j=1;j<=length;j++)
{
cout<<a[j]<<" ";
}
return 0;
}
空间复杂度:O(1)
时间复杂度:O(n²)
稳定的排序方法