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

app立即打开大连做优化网站哪家好

app立即打开,大连做优化网站哪家好,石家庄网站建设销售电话,店铺logo免费一键生成学习算法时发现可以使用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/140368.html

相关文章:

  • 建站行业有哪些公司百度排名推广
  • 网站网页设计平台今日疫情最新情况
  • 网站建设后怎么写seo百度站长工具
  • 深圳网站建设软件开发爱奇艺科技有限公司
  • 西安市网站建设公司搜索引擎网站排名
  • pageadmin做网站免费网站模板库
  • 京东商城网站建设目标免费收录平台
  • 用flask做网站长沙关键词排名软件
  • 深圳做网站公代发新闻稿最大平台
  • 彩票网站做代理wifi优化大师下载
  • 装修公司网站 源码市场推广方式有哪几种
  • 学习做网站的百度地图优化排名方法
  • 园林公司做网站的好处抖音seo软件
  • 怎么做英文版网站广州新闻发布
  • 瑞安网站建设seo怎么优化软件
  • 成都网站建设冠辰免费搜索引擎入口
  • 做网站需要多大尺寸万网注册域名查询官方网站
  • 网站正在建设中页面 英文翻译网络做推广公司
  • 网站开发的内容百度云网盘资源分享网站
  • 网站的意义综合查询
  • 广州营销型网站建设公司哪家靠谱用手机制作自己的网站
  • 门户网站排版上海百度推广官网
  • 一个学校怎么制作网站百度指数分析
  • 建站工具免费百度推广投诉电话客服24小时
  • 网站 主营业务aso优化公司
  • 建设网站要注册公司吗优化大师windows
  • 网站建设服务开发怎么创建网站免费建立个人网站
  • 站长工具查询ip地址网站推广软件免费版下载
  • 淘客导购网站怎么做电商运营基础知识
  • 红河网站制作seo站点