国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

淺談c語言中一種典型的排列組合算法

2020-01-26 14:09:06
字體:
來源:轉載
供稿:網友

c語言中的全排列算法和組合數算法在實際問題中應用非常之廣,但算法有許許多多,而我個人認為方法不必記太多,最好只記熟一種即可,一招鮮亦可吃遍天

全排列:

#include<stdio.h>void swap(int *p1,int *p2){int t=*p1;*p1=*p2;*p2=t;}void permutation(int a[],int index,int size){if(index==size){for(int i=0;i<size;i++)printf("%d ",a[i]);printf("/n");}else{for(int j=index;j<size;j++){swap(&a[j],&a[index]);permutation(a,index+1,size);//此處用到遞歸思想swap(&a[j],&a[index]);}}}int main(){int n;scanf("%d",&n);int a[n];for(int i=0;i<n;i++)a[i]=i+1;permutation(a,0,n);return 0;}

 

組合:

#include<stdio.h>void combine(int n,int m,int a[],int b[],const int M){for(int j=n;j>=m;j--){b[m-1]=j-1;if(m>1)combine(j-1,m-1,a,b,M);//用到了遞歸思想else{for(int i=M-1;i>=0;i--)printf("%d ",a[b[i]]);printf("/n");}}}int main(){int n,m;scanf("%d%d",&n,&m);int a[n];int b[m];for(int i=0;i<n;i++)a[i]=i+1;const int M=m;combine(n,m,a,b,M);}

以上這篇淺談c語言中一種典型的排列組合算法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 靖江市| 西昌市| 那坡县| 玉溪市| 正宁县| 乐安县| 东丰县| 雷波县| 静宁县| 通榆县| 陈巴尔虎旗| 白城市| 明星| 盐边县| 凌云县| 黄陵县| 安国市| 龙州县| 仙桃市| 孙吴县| 余庆县| 亚东县| 东乌珠穆沁旗| 赤峰市| 龙海市| 龙陵县| 民丰县| 满洲里市| 德钦县| 南木林县| 镇远县| 嘉禾县| 汝阳县| 塔河县| 延长县| 读书| 特克斯县| 遵化市| 临漳县| 沽源县| 达拉特旗|