栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

按特定顺序排列整数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

按特定顺序排列整数

给定数组中的任何三个连续数字,存在四种可能的关系:

a < b < ca < b > ca > b < ca > b > c

在第一种情况下,我们知道a <c。由于满足第一个条件,我们可以交换b和c来满足第二个条件,而第一个条件仍然满足。

在第二种情况下,两个条件都已满足。

在第三种情况下,我们必须交换a和b来赋予b <a?C。但是我们已经知道b <c,所以如果a <c然后交换满足第二个条件不会使第一个条件无效。

在最后一种情况下,我们知道a> c,因此交换a和b来满足第一个条件将保持第二个条件的有效性。

现在,您将第四个数字添加到序列中。你有:

a < b > c ? d

如果c c和c> d,那么我们知道b>
d。因此,将c和d交换可以得到b> d <c。

添加第五个数字时,可以使用类似的推理。你有

a < b > c < d ? e
。如果d> e,则无需更改任何内容。如果d <e,则根据定义c
<e也是如此,因此交换将保留先前条件。

实现该算法的伪代码:

for i = 0 to n-2    if i is even        if (a[i] > a[i+1]) swap(a[i], a[i+1])        end if    else        if (a[i] < a[i+1]) swap(a[i], a[i+1])    end


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/617009.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号