• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 详谈全排列next_permutation() 函数的用法(推荐)

详谈全排列next_permutation() 函数的用法(推荐)

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了next permutation用法,next permutation,next permutation函数,c next permutation,stl next permutation等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

这是一个c++函数,包含在头文件<algorithm>里面,下面是基本格式。

1 int a[];
2 do{
3   
4 }while(next_permutation(a,a+n));
</div>

下面的代码可产生1~n的全排列

#include <stdio.h>
#include <algorithm>
using namespace std;
int main(){
  int n;
  while(scanf("%d",&n)&&n){
    int a[1000];
    for(int i=0;i<n;i++){
      scanf("%d",&a[i]);
    }
    sort(a,a+n);//可以自行测试一下删除后的结果
    do{
      for(int i=0;i<n;i++)
        printf("%d ",a[i]);
      printf("\n");
    }while(next_permutation(a,a+n));
  }
  return 0;
}
</div>

例如输入

3

1 0 2

如果有sort()

输出为

0 1 2
0 2 1
1 0 2
1 2 0
2 0 1
2 1 0

若无

则输出为

1 0 2
1 2 0
2 0 1
2 1 0

可以发现少了许多种组合方法。

不过,仔细比较各种组合方法和有无sort()的输出,可以发现函数next_permutation()是按照字典序产生排列的,并且是从数组中当前的字典序开始依次增大直至到最大字典序。

以上这篇详谈全排列next_permutation() 函数的用法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 详谈全排列next_permutation() 函数的用法(推荐)

相关文章

  • 2017-05-28浅析结束程序函数exit, _exit,atexit的区别
  • 2017-05-28C++实现判断字符串是否回文实例解析
  • 2017-05-28C语言设计一个闪闪的圣诞树
  • 2017-05-28浅谈C++ Explicit Constructors(显式构造函数)
  • 2017-05-28简单谈谈C++ 头文件系列之(iosfwd)
  • 2017-05-28C++ 初始化列表详解及实例代码
  • 2017-05-28关于双向链表的增删改查和排序的C++实现
  • 2017-05-28位运算实现十进制转换为二进制
  • 2017-05-28C语言中结构体struct编写的一些要点解析
  • 2017-05-28c语言中malloc、realloc与calloc 的区别以及联系

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 如何用C语言生成简单格式的xml
    • C语言求两个字符串的最长公共子串
    • C++基于栈实现铁轨问题
    • 函数指针与指针函数的学习总结
    • C语言实现计算树的深度的方法
    • map插入自定义对象总结
    • 对C语言编程标准以及声明的基本理解
    • C语言switch 语句的用法详解
    • C++设计模式编程中简单工厂与工厂方法模式的实例对比
    • c++读写文件流实例程序讲解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有