当前位置: 首页 > wzjs >正文

设计网站下载宁宁网seo

设计网站下载,宁宁网seo,企业网站设计要点,vr看房网站开发费用学习算法时发现可以使用next_permutation函数来替代手写起到一个全排序的作用。 函数原型 函数定义在<algorithm>头文件中&#xff0c;用于生成给定序列的下一个字典序排列&#xff08;如果不理解该概念先学习一下字典序的概念&#xff09; bool next_permutation( Bid…

学习算法时发现可以使用next_permutation函数来替代手写起到一个全排序的作用。

函数原型

函数定义在<algorithm>头文件中,用于生成给定序列的下一个字典序排列(如果不理解该概念先学习一下字典序的概念)

bool next_permutation( BidirectionalIterator first, BidirectionalIterator last );

参数

  • first: 指向序列起始位置的双向迭代器。
  • last: 指向序列结束位置的双向迭代器(不包含在序列中)。

返回值

  • 如果成功生成下一个排列,返回 true
  • 如果当前序列已经是字典序中的最大排列(即降序排列),则返回false,并将序列重新排列为升序。

示例

使用next_permutation进行全排列并输出结果

#include <iostream>
#include <vector>
#include <algorithm>using namespace std;int main() 
{vector<int> nums = {1, 2, 3};sort(nums.begin(), nums.end()); // 确保从最小的排列开始do {for (int num : nums) {cout << num << " ";}cout << endl;} while (next_permutation(nums.begin(), nums.end()));return 0;
}

输出:

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

原理

  1. 从右向左找到第一个升序对 (i, i+1),即 nums[i] < nums[i+1]。
  2. 再次从右向左找到第一个大于 nums[i] 的元素 nums[j]。
  3. 交换 nums[i] 和 nums[j]。
  4. 反转 i+1 到末尾的子序列。(为了将降序子序列变为升序子序列,从而确保生成的排列是字典序中的下一个排列)
http://www.dtcms.com/wzjs/50656.html

相关文章:

  • 做网站怎么做多少钱关键词seo优化软件
  • 车轮违章查询是什么网站开发html网页制作代码大全
  • 做水果的网站北京百度推广客服电话多少
  • 域名有没有被注册哪个网站最好微信指数
  • php网站建设教程 电子书怎样做网站平台
  • 是在百度中建设网站?灰色行业推广渠道
  • 创建网站英语五种关键词优化工具
  • 怎样做销售网站seo的工作原理
  • 怎么在主机上的建设网站软文范文大全1000字
  • 凡科官网首页百度seo优化排名
  • 赣州章贡区人口怎么优化网站性能
  • 国家卫生健康委主任淘宝关键词优化推广排名
  • java开发做网站站内推广方案
  • 山东省工程建设交易信息网站今日足球赛事推荐
  • app和手机网站的区别百度推广怎么做最好
  • 公安网站备案号查询武汉seo顾问
  • 有孩子做的网站外链代发软件
  • 网站b2b建设百度极速版下载安装最新版
  • 上海移动官网网站建设今日资讯最新消息
  • 成都疫情最新消息今天又封了上海seo公司哪个靠谱
  • 做视频网站公司要怎么做的国家职业技能培训官网
  • 天河公司网站建设万网域名官网
  • 株洲发布百度seo优化怎么做
  • 沈阳网站建设公司排名搜索引擎优化排名技巧
  • wordpress 页面 分栏网络营销中的seo与sem
  • php数据库的网站模板产品推广策划
  • 政府网站手机版建设方案正规seo排名多少钱
  • 汉川网站建设seo研究
  • 可以接项目做的网站全网关键词优化公司哪家好
  • 21dove谁做的的网站天津优化加盟