博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
July 算法习题 - 字符串4(全排列和全组合)
阅读量:6949 次
发布时间:2019-06-27

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

 

思想:当前层各节点首元素不同,则各节点的剩余元素也不同;下一层节点交换范围为首元素以外的元素

全排列算法: void swap(char *a, int i, int j){    char tmp = a[i];    a[i] = a[j];    a[j] = tmp;}void permutation(char *a, int from, int to){    if (to <= 1)        return;    if (from == to){        std::cout << a << std::endl; //迭代退出条件,即输出叶子节点    }    else{        for (int i = from; i <= to; ++i){            swap(a, i, from); //交换当前层,即将首位元素与剩余元素分别交换            permutation(a, from + 1, to); //进入下一层            swap(a, i, from); //恢复当前层,因为进入下一层后会将a的值交换一次,所以这里再交换回来        }    }}

 

转载于:https://www.cnblogs.com/haiyang21/p/7860289.html

你可能感兴趣的文章
CAD中批量打印
查看>>
蛋疼的Apple IOS Push通知协议
查看>>
MyEclipse10.0 安装 jbpm4.4
查看>>
批处理复制文件(文件夹)排除某目录,某些类型(草稿)
查看>>
【转】shell 编程:冒号 后面跟 等号,加号,减号,问号的意义
查看>>
C#编写COM组件
查看>>
C#属性(Attribute)用法实例解析
查看>>
Android 自定义控件 优雅实现元素间的分割线 (支持3.0以下)
查看>>
Java中间件:淘宝网系统高性能利器
查看>>
ng-bind-html 的使用
查看>>
[OpenSource]浅谈.Net和Java互相调用的三种方式
查看>>
C语言指针的初始化和赋值
查看>>
安卓开发笔记——关于照片墙的实现(完美缓存策略LruCache+DiskLruCache)
查看>>
定义和使用EL函数
查看>>
LoadRunner项目结合抓包工具
查看>>
MySQL show binglog event in 'log_name'
查看>>
开发自己的博客转发插件(跨域)
查看>>
spark优化之临时目录
查看>>
***CI分页:为CodeIgniter写的分页类
查看>>
(十二) 一起学 Unix 环境高级编程 (APUE) 之 进程间通信(IPC)
查看>>