第九届蓝桥杯Java真题B组

  • Z5_690685
    了解作者
  • 42.4KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-06-13 07:16
    上传日期
20180401 第九届蓝桥杯Java真题B组 .................
20180401第九届蓝桥杯Java真题B组.rar
  • 20180401第九届蓝桥杯Java真题B组
  • 8
  • 题目.txt
    1.1KB
  • 10
  • 题目.txt
    944B
  • 1
  • 题目.txt
    153B
  • 5
  • 题目.txt
    1.2KB
  • 7
  • 题目.txt
    789B
  • p1.png
    10.3KB
  • 9
  • 题目.txt
    1.1KB
  • 2
  • 题目.txt
    228B
  • p1.png
    18.2KB
  • 2018-省赛-Java语言大学B组.doc
    33KB
  • 6
  • 题目.txt
    868B
  • 3
  • 题目.txt
    408B
  • 4
  • 题目.txt
    779B
内容介绍
标题:快速排序 以下代码可以从数组a[]中找出第k小的元素。 它使用了类似快速排序中的分治算法,期望时间复杂度是O(N)的。 请仔细阅读分析源码,填写划线部分缺失的内容。 import java.util.Random; public class Main{ public static int quickSelect(int a[], int l, int r, int k) { Random rand = new Random(); int p = rand.nextInt(r - l + 1) + l; int x = a[p]; int tmp = a[p]; a[p] = a[r]; a[r] = tmp; int i = l, j = r; while(i < j) { while(i < j && a[i] < x) i++; if(i < j) { a[j] = a[i]; j--; } while(i < j && a[j] > x) j--; if(i < j) { a[i] = a[j]; i++; } } a[i] = x; p = i; if(i - l + 1 == k) return a[i]; if(i - l + 1 < k) return quickSelect( _________________________________ ); //填空 else return quickSelect(a, l, i - 1, k); } public static void main(String args[]) { int [] a = {1, 4, 2, 8, 5, 7}; System.out.println(quickSelect(a, 0, 5, 4)); } } 注意:只提交划线部分缺少的代码,不要抄写任何已经存在的代码或符号。
评论
    相关推荐