【数据结构笔记46】Sort with Swap(0,*)只允许交换0的排序
本次笔记内容:
习题-SWS.1 环的分类
习题-SWS.2 算法示例
文章目录
- 题意理解
- 环的分类
- 算法示例
题意理解
如上图,本题目中仅利用与0交换的操作,以达到排序目的。联想到环排序。0其实就是空位。
题目要求输出0的使用次数。
因此,本题目转换为对环进行处理即可。
环的分类
如上图,环分为三类。对于第三种情况,先把0交换到环里,则环里一共有n+1个元素。之前要把0交换到环里,因此需要在(n+1)-1基础上再加1。
若N个元素的序列包含S个单元环、K个多元环,则交换次数为:n0−1+∑i=1K−1(ni+1)=∑i=0K−1ni+K−2=N−S+K−2n_0 - 1 + \sum^{K-1}_{i=1}(n_i + 1)=\sum^{K-1}_{i=0} n_i + K - 2 = N - S + K - 2n0−1+i=1∑K−1(ni+1)=i=0∑K−1ni+K−2=N−S+K−2
因此本题目中输出,即为上式。
算法示例
如上图,定义一个指针数组,记录每个元素当前的位置。比如0现在放的位置是7,则T[0]=7。
如上图,对环进行移动。并且在遇到0操作时停下,判断本环的结束。并且判断有没有0,来决定加数。第一个环结束,进行3+。
最终,结果为3+6=9!
浙江大学,数据结构,完结撒花!2019年10月23日22:27:53~图书馆正好关门!
【数据结构笔记46】Sort with Swap(0,*)只允许交换0的排序相关推荐
- 算法 排序6 Sort with Swap(0, i) 2013年免试研究生上机考试真题
全部每周作业和视频思考题答案和解析 见 浙江大学 数据结构 思考题+每周练习答案 题目:Given any permutation of the numbers {0, 1, 2,..., N−1}, ...
- 1067 Sort with Swap(0, i) (25 分)
1067 Sort with Swap(0, i) (25 分) Given any permutation of the numbers {0, 1, 2,..., N−1}, it is easy ...
- PTA 1067 Sort with Swap(0, i) (25 分)(思维)
传送门:点我 Given any permutation of the numbers {0, 1, 2,..., N−1}, it is easy to sort them in increasin ...
- PAT甲级1067 Sort with Swap(0, i):[C++题解]此题不是很懂!!
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:y总从图论的角度来讲解的这道题,听得不是很懂. 此题不是很懂,暂留以后探讨.存在鸽的可能. ac代码 #include<bits ...
- 【题意+分析】1067 Sort with Swap(0, i) (25 分)_24行代码AC
立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Given any permutation of the numbers {0, 1, 2,-, N−1}, it is easy ...
- 1067. Sort with Swap(0,*)
好弱啊,这个题目折腾了好久. 构造hash表用来维护各个元素所在的位置,利用map维护一颗红黑树来保存还未确定的元素的位置. (1)用0不断的跟其他元素交换,每次交换都会保证一个元素在正确的位置. ( ...
- PAT A1067 Sort with Swap(0, i) ——天街小雨润如酥,草色遥看近却无
PAT A1067 Sort with Swap(0, i) 本题使用了姥姥教的方法,通过交换过程(第一个开始动的元素,通过一系列交换到达自己应该在的位置)可以发现他们形成了一个闭环,大家手拉手,每个 ...
- 1067 Sort with Swap(0, i) (25 分)【难度: 中 / 知识点: 置换群】
https://pintia.cn/problem-sets/994805342720868352/problems/994805403651522560 这种相关的题目见过很多次了. 常见的是只可以 ...
- 排序算法(二)Sort with Swap(0,*)
对于一个由0到N-1的序列,如果只能交换0和另一个数的位置,求多少次能够将序列变为递增序列. 输入为<N> <序列>(N和序列之间有一个空格,序列元素之间均有一个空格). 设序 ...
最新文章
- mac php7 mysql.so_mac下安装php7详解
- 教你从0到1搭建秒杀系统-Canal快速入门(番外篇)
- 家装强电弱电布线图_强弱电布线注意事项,强弱电布线的4个讲究!
- 逻辑漏洞-token绕过
- 17 SD配置-企业结构-分配-分配允许的信用控制范围给公司码
- C语言中,两整数相除,若分母为零,则会出现怎样的结果???
- 宿主程序Crash与Lua是动态库还是静态库有关?
- Top20網頁爬蟲工具—5分鐘獲取網站數據
- OSI参考模型各层的功能详解
- ssh框架简单练习----------个人信息管理系统的设计与实现
- 对图片或者PDF流文件加水印
- Windows商店应用内购接入
- 如何使用测试仪进行400G交换机性能测试
- css图片锯齿,CSS 锯齿实现
- HTML5+CSS3小实例:篮球弹跳动画
- 成功解决ValueError: Duplicate plugins for name projector
- CAD偏移曲线(网页版)
- Google Chrome 中国官网最新版离线安装包下载地址
- 将opera强制的搜狗转为百度搜索
- oracle计算6的阶乘,oracle 求阶乘
热门文章
- 【C】输出乘法口诀表
- mysql安装服务和安装中常见问题install/Remove of the Service Denied与net start mysql服务启动失败解决方法
- 解决ajax回调函数无返回值得问题
- 一个简单的解决方法:word文档打不开,错误提示mso.dll模块错误。
- 树莓派3B的WiFi中文乱码及搜索不到附近的WiFi_解决方案:
- 如何列出npm用户安装的软件包?
- 将数组项复制到另一个数组中
- 写入Visual Studio的输出窗口
- win11打开控制面板闪退怎么办 Windows11控制面板闪退的解决方法
- mybatis多对一,一对一,多对多resultMap映射,pojo映射,传参集合,封装的对象传参