hdu1027 全排列 qsort

来源:互联网 发布:闲来打麻将赢钱软件 编辑:程序博客网 时间:2024/06/06 22:49
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;}