题目内容:
插入一个数据到一个有序的一维数组中,要求插入后,该数组保持原有顺序。
主函数如下,请编写函数InsSort()
#include <iostream>
using namespace std;
int main()
{
int data[11]={12,34,56,78,90,167,258,389,945,1890};
int num,i ;
cin>>num;
InsSort(data,10,num);
for(i=0;i<11;i++)
cout<<data[i]<<" ";
cout<<endl;
return 0;
}
代码内容:
#include <iostream>
using namespace std;
void InsSort(int *a,int m,int n);
int main()
{
int data[11]={12,34,56,78,90,167,258,389,945,1890};
int num,i;
cin>>num;
InsSort(data,10,num);
for(i=0;i<11;i++) cout<<data[i]<<" ";
cout<<endl;
return 0;
}
void InsSort(int*a,int m,int n)
{
int j=0,t,k=0,flag=0;
for(j=0;j<10;j++)
{
if((*(a+j)<=n&&n<=*(a+j+1))) {k=j;flag=1;break;}
}
if(flag==0&&*(a+9)<=n)k=9;
for(j=10;j>k;j--) *(a+j)=*(a+j-1);
*(a+k+1)=n;
if(k==0){t=*(a);*(a)=*(a+1);*(a+1)=t;}
}