欢迎来到天天文库
浏览记录
ID:14833328
大小:47.00 KB
页数:6页
时间:2018-07-30
《算法之字典排序法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、算法之字典排序法2.字典序法字典序法就是按照字典排序的思想逐一产生所有排列.设想要得到由1,2,3,4以各种可能次序产生出4!个“单词”.肯定先排1234,再排1243,下来是1324,1342,….,4321.分析这种过程,看如何由一个排列得到下一个排列,并给出严格的数学描述.例2.3设有排列(p)=2763541,按照字典式排序,它的下一个排列是?(q)=2764135.(1)2763541[找最后一个正序35](2)2763541[找3后面比3大的最后一个数](3)2764531[交换3,4的位置](4)2764135[把4后面的531反序排列为135即得到最后的排列(q)]l
2、求(p)=p1¼pi-1pi…pn的下一个排列(q):(1)求i=max{j÷pj-13、12,3421,4123,4132,4213,4231,4312,4321.字典排序法C++代码:#includevoidrepailie(int*a,intn,intdp){int*bb=newint[n-dp];int*cc=newint[n-dp];intti=0;for(inti=dp+1;i4、穷大的数"<>n;int*a=newint[n];intp=1;//n的阶层intq=1;//循环记录intb,c;//最后一对正序intbi,ci;//记录b和c的位置intd;//最后大于b者intdi;//记录d的位置for(into=1;o<=n;o++){p=p*o;//cout<=0;j--){if(a[j-1]5、=j;break;}}//cout<=0;k--){if(a[k]>b){d=a[k];di=k;break;}}//cout<
3、12,3421,4123,4132,4213,4231,4312,4321.字典排序法C++代码:#includevoidrepailie(int*a,intn,intdp){int*bb=newint[n-dp];int*cc=newint[n-dp];intti=0;for(inti=dp+1;i4、穷大的数"<>n;int*a=newint[n];intp=1;//n的阶层intq=1;//循环记录intb,c;//最后一对正序intbi,ci;//记录b和c的位置intd;//最后大于b者intdi;//记录d的位置for(into=1;o<=n;o++){p=p*o;//cout<=0;j--){if(a[j-1]5、=j;break;}}//cout<=0;k--){if(a[k]>b){d=a[k];di=k;break;}}//cout<
4、穷大的数"<>n;int*a=newint[n];intp=1;//n的阶层intq=1;//循环记录intb,c;//最后一对正序intbi,ci;//记录b和c的位置intd;//最后大于b者intdi;//记录d的位置for(into=1;o<=n;o++){p=p*o;//cout<=0;j--){if(a[j-1]5、=j;break;}}//cout<=0;k--){if(a[k]>b){d=a[k];di=k;break;}}//cout<
=0;j--){if(a[j-1]5、=j;break;}}//cout<=0;k--){if(a[k]>b){d=a[k];di=k;break;}}//cout<
5、=j;break;}}//cout<=0;k--){if(a[k]>b){d=a[k];di=k;break;}}//cout<
此文档下载收益归作者所有