烙饼排序算法
问题描述: 有一摞烙饼,因为一只手端着盘子,所以只能用另外一只手来给烙饼排序,将烙饼由大到小排好序。这样就要求我们在给烙饼排序的时候总是将最上面的N个烙饼一起翻转。如果最下面的烙饼是最大的,那么只需要解决上面的N-1个烙饼,同理可以最后到解决两个烙饼的排序。
#! /usr/bin/python # coding=utf-8 import random def main(): arr = random.sample( xrange ( 100 ), 10 ) print arr n = [] while arr: arr = reverse(arr) n.insert( 0 ,arr.pop()) print n def reverse(arr): if len (arr) = = 1 : return arr maxint = max (arr) maxindex = arr.index(maxint) return arr[maxindex + 1 :][:: - 1 ] + arr[ 0 :maxindex + 1 ] if __name__ = = '__main__' : main() |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步