博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【数据结构】——排列组合算法中的置换算法
阅读量:5266 次
发布时间:2019-06-14

本文共 1084 字,大约阅读时间需要 3 分钟。

如题:

  如果有数组a[3] = {1,2,3};要按照排列组合的方式进行排列,输入格式如下:

  1,2,3  1,3,2  2,1,3  2,3,1  3,1,2,  3,2,1

  用递归的方法进行编码:

代码如下:

1 #include 
2 3 int n = 0; 4 5 void swap(int *a, int *b) //用于交换数据 6 { 7 int m; 8 m = *a; 9 *a = *b; 10 *b = m; 11 } 12 void perm(int list[], int k, int m) 13 { 14 int i; 15 if(k > m) 16 { 17 for(i = 0; i <= m; i++) 18 printf("%d ", list[i]); 19 printf("\n"); 20 n++; 21 } 22 else 23 { 24 for(i = k; i <= m; i++) //每个数字都要和第一个交换25 { 26 swap(&list[k], &list[i]); //先交换数据 27 perm(list, k + 1, m); 28 swap(&list[k], &list[i]); //在恢复先前的数据29 } 30 } 31 } 32 int main() 33 { 34 int list[] = {
1, 2, 3}; 35 perm(list, 0, 2); 36 printf("total:%d\n", n); 37 return 0; 38 }

 

转载于:https://www.cnblogs.com/ngnetboy/archive/2013/04/26/3045773.html

你可能感兴趣的文章
awk 统计
查看>>
CSS min-height 属性
查看>>
SDN第一次作业
查看>>
模板设计模式的应用
查看>>
【井字游戏】做一款回忆童年的游戏
查看>>
数据结构(二):栈
查看>>
实训第五天
查看>>
平台维护流程
查看>>
SQL (FMDB)
查看>>
2012暑期川西旅游之总结
查看>>
Linux发行版的排行
查看>>
宾得镜头大全与发展史
查看>>
spread+wackamole打造全新高可用+负载均衡
查看>>
Xcode 快捷键及代码格式化
查看>>
12010 解密QQ号(队列)
查看>>
Docker简明教程(以安装wget程序为例)
查看>>
2014年辛星完全解读Javascript第一节
查看>>
装配SpringBean(一)--依赖注入
查看>>
daydayup2 codeforces143C
查看>>
ANT打包J2EE项目war包
查看>>