qsort 有4个参:
#include<iostream>
#include<stdlib.h>
using namespace std;//just member ever for!
int cmp(const void *a,const void *b){ //与sort的区别 bool 变成了 int
return *(int *)a-*(int *)b; //sort中是return (int a>int b);
}
void train(int list[],int n,int m)
{
int i,j,tmp,num;
num = m-1;
while(num){
for(i=n-1;i>0;i--){
if(list[i]<list[i+1])
break;}
if(i==0)
return;
for(j=n;j>i;j--)
if(list[j]>list[i])
break;
tmp = list[i];
list[i] = list[j];
list[j] = tmp;
qsort(list+i+1,n-i,sizeof(int ),cmp);
num--;
}
for(i=1;i<n;i++)
cout<<list[i]<<" ";
cout<<list[n]<<endl;
}
int main(){
int m,n,i;int list[100002];
while(cin>>n>>m)
{
for(i=1;i<=n;i++)
list[i] = i;
train(list,n,m);
}
return 0;
}