生成全排列----离散数学及其应用伪代码实现
来源:互联网 发布:mac安装农行安全控件 编辑:程序博客网 时间:2024/04/30 19:32
生成{1, 2, 3, 4, 5, 6, 7, 8, 9}的全排列。
算法基于离散数学及其应用的伪代码,字典顺序
#include <stdio.h>int permutation(int* a, int len);int main(void){ int ret = 1; int i = 0; int A[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; for (i = 0; i < 9; i ++) { printf("%d", A[i]); } printf("\n"); while (ret) { ret = permutation(A, 9); for(i = 0; i < 9; i++) { printf("%d", A[i]); } printf("\n"); } return 0;}void swap(int *a, int *b){ int tmp = 0; tmp = *a; *a = *b; *b = tmp;}int permutation(int* a, int len){ int i = 0; int j = len -2, k = len-1; int r = len -1, s = 0; int *p = a; while (p[j] > p[j+1]) { j -= 1; if (j == -1) return 0; } while (p[j] > p[k]) k -= 1; swap(&p[j], &p[k]); s = j+1; while (r > s) { swap(&p[r], &p[s]); r--; s++; } return 1;}
- 生成全排列----离散数学及其应用伪代码实现
- <<离散数学>>生成排列
- 一种变进制数及其应用(全排列之Hash实现)
- 一种变进制数及其应用(全排列之Hash实现)
- 一种变进制数及其应用(全排列之Hash实现)
- 一种变进制数及其应用(全排列之Hash实现)
- 一种变进制数及其应用(全排列之Hash实现)
- 全排列及其STL实现
- 离散数学及其应用 前言
- 用代码实现全排列
- 字符串全排列代码实现
- 全排列java代码实现
- 全排列算法及其C++实现
- 《离散数学及其应用》读书笔记-二分法
- 《离散数学及其应用》学习(上)
- 《离散数学及其应用》学习(下)
- (转)一种变进制数及其应用(全排列之Hash实现)
- 全排列生成算法java实现
- java中Date的注意事项,写给自己
- Hibernate的使用举例
- [LeetCode] Remove Duplicates from Sorted Array II
- Which SQL statement is the trump card to the senior software developer
- 反素数
- 生成全排列----离散数学及其应用伪代码实现
- 免费PDF转JPG软件(绿色版),PDF转换器工具,不好使你呼我【捡肥皂】
- uva10012 不是那么简单的,有陷阱!
- Unresolved external __fastcall Vcl::Controls::TControl::SetConstraints referenced from CSPIN.OBJ
- 带您解读SQL Server2008中的TIME数据类型
- 成功安装m2eclipse的方法步骤
- eclipse断点调试总结
- 查看系统信息
- 开源,选择Google Code还是Sourceforge? .