//用于求全排序的经典算法“后补法”,代码如下:

#include <stdio.h>
#include <conio.h>
#include <string.h>

void Permutation(char* a, int m, int n)
{
    int i;
    char t;
    if (m < n-1)
    {
        Permutation(a, m + 1, n);
        for (i = m + 1; i < n; i++)
        {
            t = a[m];
            a[m] = a[i];
            a[i] = t;
            Permutation(a, m + 1, n);
            t = a[m];
            a[m] = a[i];
            a[i] = t;
        }
    }
    else
    {
        printf("%s\n",a);
    }
}

int main()
{
char a[]="ABC";
Permutation(a,0,strlen(a));
getch();
}

//Permutation说明
//输入:
//参数1,为构造全排列所需要的字符;
//参数2,全排列所需要字符从参数1的第几个下标算起(前面忽略),一般为0
//参数3,全排列构造字符长度,一般为参数1中的字符数量
//输出:ABC的全排列。

转载于:https://www.cnblogs.com/leaway/archive/2006/04/03/366030.html

求全排序的经典算法“后补法”相关推荐

  1. 经典算法之快速排序法(附B站最细讲解视频)

    活动地址:21天学习挑战赛 文章目录 一.算法 1.算法概述 2.算法步骤 3.算法特点 二.算法实践 1.Java代码 2.执行结果 3.讲解视频 三.复杂度分析 1.时间复杂度 2.空间复杂度 一 ...

  2. 五大经典算法之回溯法

    一.基本概念   回溯法,又称为试探法,按选优条件向前不断搜索,以达到目标.但是当探索到某一步时,如果发现原先选择并不优或达不到目标,就会退回一步重新选择,这种达不到目的就退回再走的算法称为回溯法. ...

  3. 第39级台阶回溯算法c语言,五大经典算法之回溯法 - osc_9ipdey7e的个人空间 - OSCHINA - 中文开源技术交流社区...

    一.基本概念 回溯法,又称为试探法,按选优条件向前不断搜索,以达到目标.但是当探索到某一步时,如果发现原先选择并不优或达不到目标,就会退回一步重新选择,这种达不到目的就退回再走的算法称为回溯法. 与穷 ...

  4. 经典算法之冒泡排序法与直接选择排序法

    活动地址:21天学习挑战赛 文章目录 一.冒泡排序法 1.基本思想 2.算法步骤 3.代码实践 4.复杂度分析 二.直接选择排序法 1.基本思想 2.算法步骤 3.代码实践 4.复杂度分析 一.冒泡排 ...

  5. 冒泡排序python例题_零基础学python 15 经典算法:冒泡排序法(课后习题答案)...

    这节课我们对于冒泡排序法的课后习题进行一下解答: 回顾一下我们的题目: 上节课我们学习的冒泡排序法,是让我们的list从小到大进行排列,这次我们的任务是,请对冒泡排序法进行一定的修改,加一个参数,让它 ...

  6. 五大经典算法之回溯法及其应用

    前言 回溯法是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标.但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的 ...

  7. c语言筛选法_极少数人用过的另类素数求解法,C语言经典算法之筛选法求质数...

    筛选求质数 明除了自身之外,无法被其它整数整除的数称之为质数,要求质数很简单,但如何快速的求出质数则一直是程式设计人员与数学家努力的课题,在这边介绍一个着名的 Eratosthenes求质数方法. 行 ...

  8. 还在为数学建模的事发愁?带你一起来看看数模竞赛中必备的经典算法

    前言 数学建模比赛是本科生和研究生阶段最重要的比赛之一,包括全国大学生数学建模竞赛(俗称"国赛")和美国大学生数学建模竞赛(俗称"美赛").在这些比赛中取得好成 ...

  9. 经典算法之希尔排序法(Java实现)

    活动地址:21天学习挑战赛 目录 一.算法 1.算法概述 2.基本思想 3.算法步骤 4.算法特点 二.算法实践 1.Java代码 2.执行结果 三.复杂度分析 1.时间复杂度 2.空间复杂度 一.算 ...

最新文章

  1. 桌子上有个盘子_日本留学生活:留学生在餐厅刷盘子的传闻,竟然在自己身上上演...
  2. 5G NGC — N3IWF 非 3GPP 互通功能
  3. 【排序算法】冒泡排序 选择排序 插入排序 希尔排序(数组)
  4. nbiot开发需要掌握什么_什么是前端工程师?前端工程师需要掌握什么技能?
  5. tf.layers.dropout
  6. word里双横线怎么打_美人计 | 精致打工人秀智,教你内双怎么化
  7. go 单元测试 testing 打印输出_2020,你需掌握go 单元测试进阶篇
  8. vue component created没有触发_面试!面试!面试!vue常见面试题。
  9. 『嗨威说』数据结构 - 第七章学习内容小结
  10. 多行溢出文字省略号显示(HTML、CSS)
  11. 视频编解码(九):FFMPEG操作总结一
  12. Object.HashCode()——居然是Java Native方法
  13. 用proxifier、ccproxy、teamviewer做网络代理
  14. 三角函数在c语言中应用,三角函数在前端动画中的应用
  15. 激荡20年的百度帝国,曾经的王者为何从BAT掉队?到底发生了什么?
  16. 中文期刊分类(blog版)
  17. raptor流程图赋值语句_RAPTOR流程图编程.ppt
  18. 前端实战小案例--canvas实战之FlappyBird小游戏
  19. 转载:程苓峰:跨国B2C,围猎阿里
  20. 计算机网络基础及应用教程,计算机网络基础及应用教程

热门文章

  1. 423day(仿站小工具)
  2. a标签的tagart属性
  3. IT大学生如何提升职业竞争力
  4. 使用gitbook制作电子书
  5. 本地服务器搭建青龙面板(PC端)
  6. java socat_Socat虚拟串口无法识别
  7. 2022最新1w字MySQL索引面试题(附md文档)
  8. poj之旅——2429,3641,1995
  9. android 佳能 打印机,佳能(中国)- 打印机 - 喷墨机丰富功能 - Canon PRINT Inkjet/SELPHY移动打印...
  10. Wicket + Spring集成示例