【每日蓝桥】56、一八年省赛Java组真题“快速排序”

举报
灰小猿 发表于 2021/05/26 01:03:00 2021/05/26
【摘要】 你好呀,我是灰小猿,一个超会写bug的程序猿! 欢迎大家关注我的专栏“每日蓝桥”,该专栏的主要作用是和大家分享近几年蓝桥杯省赛及决赛等真题,解析其中存在的算法思想、数据结构等内容,帮助大家学习到更多的知识和技术! 标题:快速排序 以下代码可以从数组a[]中找出第k小的元素 它使用了类似于快速排序中的分治算法,期望时间复杂度是O(N)的, 请仔细阅读分析源...

你好呀,我是灰小猿,一个超会写bug的程序猿!

欢迎大家关注我的专栏“每日蓝桥”,该专栏的主要作用是和大家分享近几年蓝桥杯省赛及决赛等真题,解析其中存在的算法思想、数据结构等内容,帮助大家学习到更多的知识和技术!

标题:快速排序

以下代码可以从数组a[]中找出第k小的元素

它使用了类似于快速排序中的分治算法,期望时间复杂度是O(N)的,

请仔细阅读分析源码,填写划线部分缺失的内容


   
  1. package 一八年省赛真题;
  2. import java.util.Random;
  3. public class Main {
  4. public static int quickSelect(int a[],int l,int r,int k) {
  5. Random rand = new Random();
  6. int p = rand.nextInt(r-l+1) + l;
  7. int x = a[p];
  8. int tmp = a[p]; a[p] = a[r]; a[r] = tmp;
  9. int i = l, j = r;
  10. while (i<j) {
  11. while (i<j&&

文章来源: blog.csdn.net,作者:灰小猿,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_44985880/article/details/115490500

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。