浅谈c语言中一种典型的排列组合算法

 更新时间:2017年05月14日 08:54:26   投稿:jingxian  
下面小编就为大家带来一篇浅谈c语言中一种典型的排列组合算法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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语言中一种典型的排列组合算法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C++实现关系与关系矩阵的代码详解

    C++实现关系与关系矩阵的代码详解

    这篇文章主要介绍了C++实现关系与关系矩阵,功能实现包括关系的矩阵表示,关系的性质判断及关系的合成,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C++实现LeetCode(122.买股票的最佳时间之二)

    C++实现LeetCode(122.买股票的最佳时间之二)

    这篇文章主要介绍了C++实现LeetCode(122.买股票的最佳时间之二),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • xxx_cast类型转换的实现方法

    xxx_cast类型转换的实现方法

    下面小编就为大家带来一篇xxx_cast类型转换的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • C语言实现游戏VIP停车场管理系统

    C语言实现游戏VIP停车场管理系统

    这篇文章主要介绍了C语言实现游戏VIP停车场管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • C/C++实现矩阵的转置(示例代码)

    C/C++实现矩阵的转置(示例代码)

    C/C++实现矩阵的转置(示例代码)需要的朋友可以过来参考下,希望对大家有所帮助
    2013-10-10
  • C++中String类的常用接口函数总结

    C++中String类的常用接口函数总结

    这篇文章主要介绍了C++中Stirng类的常用接口函数,文中有详细的代码示例供大家参考,对我们学习C++有一定的帮助,感兴趣的同学可以跟着小编一起来学习
    2023-06-06
  • EasyC++模板重载

    EasyC++模板重载

    这篇文章主要介绍了C++模板重载,重载的模板的函数特征,也就是入参的数量和类型必须有所不同,下面我们讲举例说明此内容,具有一定的参考价值,需要的小伙伴可以参考一下
    2021-12-12
  • C++实现的分布式游戏服务端引擎KBEngine详解

    C++实现的分布式游戏服务端引擎KBEngine详解

    这篇文章主要详细介绍了C++实现的分布式游戏服务端引擎KBEngine的概念以及使用方法,非常的实用,有需要的小伙伴可以参考下
    2015-03-03
  • C语言函数指针与回调函数的实现

    C语言函数指针与回调函数的实现

    本文主要介绍了C语言函数指针与回调函数的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • C语言实现注册登录系统

    C语言实现注册登录系统

    这篇文章主要为大家详细介绍了C语言实现注册登录系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12

最新评论