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

华为网站开发app下载平台哪个好

华为网站开发,app下载平台哪个好,做视频必须知道的一些网站,网页搜索引擎顾得泉#xff1a;个人主页 个人专栏#xff1a;《Linux操作系统》 《C/C》 《LeedCode刷题》 键盘敲烂#xff0c;年薪百万#xff01; 全排序#xff08;Permutation#xff09;是指将一组元素按照一定的顺序进行排列的过程。在计算机科学中#xff0c;全排序是一… 顾得泉个人主页 个人专栏《Linux操作系统》  《C/C》  《LeedCode刷题》 键盘敲烂年薪百万 全排序Permutation是指将一组元素按照一定的顺序进行排列的过程。在计算机科学中全排序是一个经典的问题常用于解决排列组合、搜索和优化等领域的算法设计。 具体来说全排序是指对于给定的n个元素将它们按照不同的顺序进行排列得到所有可能的排列结果。例如对于3个元素{1, 2, 3}全排序的结果为{1, 2, 3}、{1, 3, 2}、{2, 1, 3}、{2, 3, 1}、{3, 1, 2}、{3, 2, 1}共6种排列方式。 一、C语言基础实现 在C语言中可以使用递归的方式来实现全排列。具体步骤如下 定义一个递归函数接受一个数组和两个整数作为参数。其中数组存储待排列的元素第一个整数表示当前排列的起始位置第二个整数表示当前排列的结束位置。当起始位置等于结束位置时表示已经完成了一种排列可以将当前排列输出。从起始位置开始依次将每个元素与起始位置交换并递归调用函数将起始位置后移一位。在递归调用结束后需要将交换过的元素还原回原来的位置以便进行下一次交换。重复步骤3和步骤4直到起始位置等于结束位置。 以下是使用递归方式实现全排序的示例代码 #include stdio.h// 交换两个元素的值 void swap(int* a, int* b) {int temp *a;*a *b;*b temp; }// 全排序递归函数 void permute(int* arr, int start, int end) {if (start end) {// 打印当前排列结果for (int i 0; i end; i) {printf(%d , arr[i]);}printf(\n);}else {for (int i start; i end; i) {// 交换第start个元素与第i个元素swap(arr[start], arr[i]);// 递归生成下一层排列permute(arr, start 1, end);// 恢复交换前的状态以便进行下一次交换swap(arr[start], arr[i]);}} }int main() {int arr[] { 1, 2, 3 };int n sizeof(arr) / sizeof(arr[0]);printf(全排序结果\n);permute(arr, 0, n - 1);return 0; } 运行以上代码将会输出全排序的结果 二、调用库函数实现  还有一种更便捷的实现方式就是使用C语言中的库函数next_permutation以下我用c进行库函数使用代码展示 #include iostream #include algorithm #include vector using namespace std; int main() {vectorint nums { 1, 2, 3 };// 对nums进行全排列cout 全排序结果 endl;do {for (int num : nums) {cout num ;}cout endl;} while (next_permutation(nums.begin(), nums.end()));return 0; } 运行以上代码将会输出全排序的结果 对比来说调用库函数结果相同并且对我们来说更容易实现相应操作所以大家赶快练起来。 三、实战演练 题目描述 人类终于登上了火星的土地并且见到了神秘的火星人。人类和火星人都无法理解对方的语言但是我们的科学家发明了一种用数字交流的方法。这种交流方法是这样的首先火星人把一个非常大的数字告诉人类科学家科学家破解这个数字的含义后再把一个很小的数字加到这个大数上面把结果告诉火星人作为人类的回答。 火星人用一种非常简单的方式来表示数字――掰手指。火星人只有一只手但这只手上有成千上万的手指这些手指排成一列分别编号为 1,2,3,⋯1,2,3,⋯。火星人的任意两根手指都能随意交换位置他们就是通过这方法计数的。 一个火星人用一个人类的手演示了如何用手指计数。如果把五根手指――拇指、食指、中指、无名指和小指分别编号为 1,2,3,41,2,3,4 和 55当它们按正常顺序排列时形成了 55 位数 1234512345当你交换无名指和小指的位置时会形成 55 位数 1235412354当你把五个手指的顺序完全颠倒时会形成 5432154321在所有能够形成的 120120 个 55 位数中1234512345 最小它表示 111235412354 第二小它表示 225432154321 最大它表示 120120。下表展示了只有 33 根手指时能够形成的 66 个 33 位数和它们代表的数字 三进制数代表的数字123123111321322221321333231231443123125532132166 现在你有幸成为了第一个和火星人交流的地球人。一个火星人会让你看他的手指科学家会告诉你要加上去的很小的数。你的任务是把火星人用手指表示的数与科学家告诉你的数相加并根据相加的结果改变火星人手指的排列顺序。输入数据保证这个结果不会超出火星人手指能表示的范围。 输入格式 共三行。         第一行一个正整数 N表示火星人手指的数目1≤N≤10000         第二行是一个正整数 M表示要加上去的小整数1≤M≤100         下一行是 1 到 N 这 N 个整数的一个排列用空格隔开表示火星人手指的排列顺序 输出格式 N 个整数表示改变后的火星人手指的排列顺序。每两个相邻的数中间用一个空格分开不能有多余的空格。 输入输出样例 输入 输出 参考代码 #includebits/stdc.h using namespace std; int n, m, arr[10001]; int main() {cin n m;for(int i 1; i n; i)cin arr[i];for(int i 1; i m; i)next_permutation(arr 1, arr 1 n);for(int i 1; i n; i)cout arr[i] ;cout arr[n];return 0; } 结语关于全排序的简单分享到这里就结束了希望本篇文章的分享会对大家的学习带来些许帮助如果大家有什么问题欢迎大家在评论区留言最后祝大家新的一年里学业有成天天开心~~~
http://www.eeditor.cn/news/119545/

相关文章:

  • 当当网网站建设案例网络营销外包价格
  • 古典风格网站模板htmlwordpress主题的连接函数
  • 中国十大企业襄阳网站seo方法
  • 企业网站的重要性钉钉付费版多少钱
  • 深圳网站建设公司建设wordpress插件 标签
  • 华梦服饰网站建设中北京市建设厅网站首页
  • 天津正规网站建设调试公司网站设计目的与规划
  • 在家里怎样做网站如何写网站建设实验结果分析
  • 建网站原型图中小企业门户网站建设策略
  • 优惠券直播网站怎么做的郑州汉狮做网站多少钱
  • 静态网站建设的流程人才网站app建设建议
  • 电子商务和网站建设区别软件发展的四个阶段
  • 黄山工程建设信息网站电子商务网站dw建设实验报告
  • 房产网站建设产品中国十大建筑设计院
  • 资质类网站如何做优化专业的教育行业网站制作
  • 做游戏网站的目地有没有在家做的手工活网站
  • 做康复医院网站怎样找到工厂直招网站
  • 网站建设:成都今网科技wordpress 大气模板
  • 网站地图用法大安网站建设
  • 宁夏建设工程交易中心网站记事本做网站怎么插图
  • 鸣蝉网站建设公司建筑公司网站管理员
  • 域名如何做网站百度云 免费 网站主机
  • 烟台优化网站公司wordpress 主题 教程
  • 网站建站步骤做外贸需掌握的网站
  • 展开网站建设网站模板 psd
  • 台州建设网站公司生鲜电商网站建设
  • 中国十大门户网站排行金蝶软件有限公司
  • 云浮新兴哪有做网站的在山东和网页有关的公司
  • 一个网站做几个关键词搭建大数据平台费用
  • 官方网站建立api网站制作