Loading

煎饼排序

煎饼排序

其最优的解法是 NP问题
目前的解决方法是类似选择排序,每次选出一个最大或最小的放到指定的位置

思路与算法
设一个元素的下标是 index,我们可以通过两次煎饼排序将它放到尾部:

  • 第一步选择 k=index+1,然后反转子数组 arr[0...k−1],此时该元素已经被放到首部。

  • 第二步选择 k=n,其中 n 是数组 arr 的长度,然后反转整个数组,此时该元素已经被放到尾部。

  • 如果最大值已经在尾部,则可以省略相应的操作

通过以上两步操作,我们可以将当前数组的最大值放到尾部,然后将去掉尾部元素的数组作为新的处理对象,重复以上操作,直到处理对象的长度等于一,此时原数组已经完成排序。如果最大值已经在尾部,我们可以省略对应的操作。

见leetcode 969

posted @ 2022-06-21 10:46  北方Cc  阅读(53)  评论(0)    收藏  举报