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

tap自助建站搜索引擎推广排名

tap自助建站,搜索引擎推广排名,手机做服务器建网站,上海品划网站建设有限公司学习算法时发现可以使用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/178372.html

相关文章:

  • 有没有便宜的网站制作泰安seo排名
  • 淘宝导购网站建设百度怎么发布自己的信息
  • 响应式网站用什么工具线上商城的推广方案
  • 安阳市哪里做网站建设网络推广怎么做
  • 昆山网站建设ikelv宣传方式有哪些
  • 武汉网站建设whjzyh最近三天的新闻大事摘抄
  • 西安微信平台网站建设优化大师哪个好
  • 网站改版需要注意哪些seo问题贵阳搜索引擎排名推广
  • 百度网站收录提交入口全攻略某一网站seo策划方案
  • 东莞+网站建设+定制水优化设计三年级下册数学答案
  • 高端网站建设kgu专业搜索引擎seo服务商
  • 自动关联已发布文章wordpress在线seo外链工具
  • 企业做网站需要提交的资料表格郑州网络营销推广
  • 专做代购的网站网站友情链接出售
  • wordpress json插件seo职位要求
  • 青岛网站互联网公司沈阳关键词快照优化
  • 基于jsp网站开发开题报告子域名在线查询
  • 海口本地网站百度推广客户端下载安装
  • 规划建网站步骤怎么制作一个自己的网站
  • 株洲网站建设企业深圳做网站公司
  • 无障碍 网站 怎么做seo优化效果
  • 免费素材视频网站南宁百度网站推广
  • 昌江区网站建设病毒式营销案例
  • 自由策划网站建设公司网站怎么弄
  • 画廊网站模板网络广告的概念
  • 找人做网站需要注意问题关键词排名怎么上首页
  • 北京性价比网站建设找个免费网站这么难吗
  • 网站搬家到Wordpress小说推广关键词怎么弄
  • 做冻品海鲜比较大的网站有哪些电商平台怎么注册
  • 山东聊城建设局网站网络服务提供者不是网络运营者