28X0.29一0.29X0.2834X33的简便算法法

本回答被提问者和网友采纳

你对這个回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

牛客幼儿园的小朋友课间操时间需要按照学号从小到大排队但是他们太小了只能站成一列顺序却不对,现在幼儿园的阿姨需要帮忙交换小朋友的位置让他们最终有序阿姨希望能尽快完成交换操作,问最少需要交换多少次才能使得小朋友们从小到大排好。
注意:每个小朋友的学号不同但是未必连续,因为可能有小朋友请假了没有来
接下来 N 行每行一个整数,为小朋友们的队列

输出描述: 一个整数表示小朋友们的最小交换次数。

我们鈳以发现51虽然不在自己应该在的位置,但是如果把它们两个看成整体对于整个序列来说它们占据了排好序后5,1应该在的位置所以对於整个序列来说是有序的,它们只是自身内部无序而已5应该到1处,1应该到5处形成了一个循环,所以可以将它们抽象成一个环环内换序就可以了。
对于一个含有n个元素的循环节来说要使其有序,要交换n-1次(前面都排好了最后一个数自然有序就不用排了)。
上例中3在原本僦在的位置可以看成一个元素的循环节。
我们可以推断出有一个循环节就可以少交换一次,因为n个元素的循环节只需交换n-1次即可有序。
那么对于整个序列来说最少交换次数为 元素总数-循环节个数。

我要回帖

更多关于 34X33的简便算法 的文章

 

随机推荐