Hark的数据结构与算法练习之煎饼排序

编程入门 行业动态 更新时间:2024-10-25 12:26:26

Hark的<a href=https://www.elefans.com/category/jswz/34/1769880.html style=数据结构与算法练习之煎饼排序"/>

Hark的数据结构与算法练习之煎饼排序

算法说明

假设煎锅里边有N个煎饼摞在了一起,它们大小不一并且顺序不一致,我们需要通过拿铲子将它们不停的翻个,进行排序,最终得到一个底下是大的煎饼,上边是小的煎饼的序列。这个排序的过程就是煎饼排序。

这个算法有两种解,一种是普通解,一种是最优解。

普通论证:

例如你的初始煎饼顺序是[2,4,3,1]

然后2与4交换位置,然后4与1交换位置,得出[1,3,2,4]。

然后3与1交换位置,接着3与2交换位置,得出[2,1,3,4]。

最后2与1交换位置,得出结果[1,2,3,4]

通过普通解的过程,我们能对算法做一个总结:

我们其实每次都是两两比较煎饼,然后先将大煎饼放到最上边去,然后再把大煎饼放到最下边去。如果是n个煎饼,那么我们要进行2*n次。 不过我们注意一下。在2与1进行交换时,我们只做了一次,也就是说,当只有最后一组数字时,我们只需要排序一次就可以,所以我们有2*(n-2)+1,那么最后结果是2n-3

当然我们这个时间复杂度只是排序的,查询的时间复杂度没有计算在内的。

 

最优解论证:

话说找到的最优解是(15/14)n≦  f(n) ≦ (5n+5)/3

不过没有找到论证的资料,而且找到后我估计我也看不懂,所以就不来论证了,发出来记录一下,以后有能力弄懂后再回来这里补充

 

总结:

煎饼排序感觉对于我们实际应用场景来说不是很实用,就当开阔一下思路啦。

 

 

 

 

代码

因为要考试,所以暂时先不写,以后补上

 

参考

/

/

转载于:.html

更多推荐

Hark的数据结构与算法练习之煎饼排序

本文发布于:2024-03-08 21:11:14,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1722380.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据结构   煎饼   算法   Hark

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!