PAT 1045 快速排序

编程入门 行业动态 更新时间:2024-10-22 21:38:36

PAT 1045 <a href=https://www.elefans.com/category/jswz/34/1771431.html style=快速排序"/>

PAT 1045 快速排序

著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?

例如给定 N=5, 排列是1、3、2、4、5。则:

  • 1 的左边没有元素,右边的元素都比它大,所以它可能是主元;
  • 尽管 3 的左边元素都比它小,但其右边的 2 比它小,所以它不能是主元;
  • 尽管 2 的右边元素都比它大,但其左边的 3 比它大,所以它不能是主元;
  • 类似原因,4 和 5 都可能是主元。

因此,有 3 个元素可能是主元。

输入格式:

输入在第 1 行中给出一个正整数 N(≤105); 第 2 行是空格分隔的 N 个不同的正整数,每个数不超过 109。

输出格式:

在第 1 行中输出有可能是主元的元素个数;在第 2 行中按递增顺序输出这些元素,其间以 1 个空格分隔,行首尾不得有多余空格。

输入样例:

5
1 3 2 4 5

结尾无空行

输出样例:

3
1 4 5

结尾无空行

题目分析

先排序,找到位置没变的所有元素

在这些元素里,找到满足未排序数组左(右)边所有元素都比它小(大)的,就是答案

AC代码

//好晚了 我要睡觉了

总结

找到一点点点点点点点点点自信了

更多推荐

PAT 1045 快速排序

本文发布于:2024-03-13 02:12:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1732954.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:快速   PAT

发布评论

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

>www.elefans.com

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