文件名称:
分治法求枚举排序(包含详细解答及分析)
开发工具:
文件大小: 4kb
下载次数: 0
上传时间: 2011-06-06
详细说明: 输入n个数,按照字典序从小到大的顺序输出前n个数的所有排列。 核心代码: void print_permutation(int n, int*a,int cur) { int i,j; if(cur==n) //当存入的数组a的数量到达n时,这时候就可以输出 { for(i = 0 ; i < n; i++) printf("%d \t",a[i]); printf("\n"); } else { for(i = 1; i <= n; i++) //循环变量i是考察当前a[cur],检查i是否在之前被用过 { int ok=1; for(j = 0; j < cur ;j++ )//检查cur之前的几位,看是否有与cur相同的项。 if(a[j]==i) ok=0; if(ok) { a[cur] = i; //如果i没有出现在cur之前的几位,那么将cur插入到数组中 print_permutation( n,a,cur+1);//递归调用 } } } } 运行结果: please input a number 3 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 请按任意键继续. . . ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.