#include <iostream>
using namespace std;
void sort(int**M, int**N, int**p, int t);
int main()
{
int n, m;
int**p = new int*;
int **M=new int*;
int **N = new int*;
int k; //记录数据组数
for (int t=0;;++t,k = t)
{
cin >> n >> m;
M[t] = new int[1];
N[t] = new int[1];
M[t][0] = m; //m放到竖排数组中
N[t][0] = n; //n放到竖排数组中
if (n == 0 && m == 0) break;
for (;;) //*赋值*
{
p[t] = new int[101];
int i = 0;
int a;
cin >> a;
while (i < n)
{
p[t][i] = a;
++i;
if(i!=n)cin >> a;
}
break;
}
}
// cout << "k=" << k<<endl;
for(int i=0;i<k;++i) //输出
{
sort(M, N, p, i);
}
//delete
return 0;
}
void sort(int**M, int**N, int**p,int t)
{
//比较排序(处理一组数据)(第t组)
for (int i=1;i<N[t][0];++i)
{
int f = N[t][0]; //f=该组数据的n,即p的元素个数
if (M[t][0] > p[t][i - 1] && M[t][0] < p[t][i]) //比较
{
for (int k = f; k >i; --k)
{
p[t][k] = p[t][k-1]; //移位
}
p[t][i] = M[t][0];
}
}
for (int i = 0; i < N[t][0] + 1; ++i)
{
cout << p[t][i] << ' ';
}
cout << endl;
}
第二周test 6.数列有序 HDU2019
最新推荐文章于 2019-08-01 13:09:30 发布