输入一个无序序列,输出第K大的数。
来源:互联网 发布:ubuntu系统的下载工具 编辑:程序博客网 时间:2024/05/21 10:34
输入一个无序序列,输出第K大的数。
import java.util.Scanner;import java.util.*;public class Main {public static void main (String args[]){Scanner in=new Scanner(System.in);while(in.hasNextLine()){String s=in.nextLine();//读取当前行String[] ss=s.split(" ");//split把字符串按照指定的分割 符 空格进行分割,然后返回字符串数组, int n=ss.length; int k=in.nextInt(); int a[]=new int[n];//将字符串写入数组a for(int i=0;i<n;i++){ a[i]=Integer.parseInt(ss[i]); } System.out.print(findKth(a,n,k));}in.close();}public static int findKth(int[] a, int n, int k) { // write code here Arrays.sort(a); return a[n-k]; }}
快排
import java.util.Scanner;public class Main {public static void main (String args[]){Scanner in=new Scanner(System.in);while(in.hasNextLine()){String s=in.nextLine();//读取当前行String[] ss=s.split(" ");//split把字符串按照指定的分割 符 空格进行分割,然后返回字符串数组, int n=ss.length; int k=in.nextInt(); int a[]=new int[n];//将字符串写入数组a for(int i=0;i<n;i++){ a[i]=Integer.parseInt(ss[i]); } quickSort(a,0,n-1); System.out.print(a[n-k]);//因为快排给出的是从小到大的顺序,若是从大到小,则是a[k-1]}in.close();} private static void quickSort(int[] a, int left,int right){ //当可以进行快排时 if(left < right){ //把最左边的值设为key,把left的值赋给low,right的值赋给high int key = a[left]; int low = left; int high = right; //当low<high时,循环把比key更大的放在它右边,比key更小的值放在它的左边 while(low<high){ //如果右边的值大于key则一直向后对比 while(low < high && a[high] >= key){ high--; } //符合是把高位的值赋给低位的值 a[low] = a[high]; //如果左边的值一直小于key则一直向前对比 while(low < high && a[low] < key){ low++; } //把地位的值赋值给高位 a[high] = a[low]; } //把key的值赋给指针停止的地方 a[low] = key; quickSort(a,left,low-1); quickSort(a,low+1,right); } } }
阅读全文
0 0
- 输入一个无序序列,输出第K大的数。
- 【28】一个无序的序列查找第K大的数
- java编程:无序整数序列,求其中第K大的数。
- 【滴滴笔试】利用快排找到一个无序的数组中的第K大的数
- 面试题—— 找出一个无序整型数组中第k大的数。
- 无序数组找出其中的第K大的数
- JS输入一个无序数组,输出第X大的数字
- 求无序数组第K大的数
- 寻找无序数组中第k大的数
- 在无序数组中找到第k大的数
- 一个无序数组中第K大的元素
- java 实现从无序数组中 找出第k大的数, 无序数组充许有重复元素
- 寻找无序数组中第k大的数——快排思想
- 选择问题-输出第k大的数
- 分治法 快排 输出第k大的数
- 查找一个无序数列中第k个大的元素
- 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。 输入格式 第一行包含一个数n,表示序列长度。 第二行包含n个正整数,表示给定的序列。 第三个包含一个正整数m,表
- hdu 4006 输入新数后输出第k大的数 set以及优先队列2中做法
- Hbase的基本简介及安装、配置、使用(一)
- 读<精进:如何成为一个很厉害的人>
- 前端习题总结
- ACM模板
- 优化方法总结(BGD,SGD,Momentum,AdaGrad,RMSProp,Adam)
- 输入一个无序序列,输出第K大的数。
- 237.Delete Node in a Linked List
- 动态规划
- UnityShader学习-纹理shader
- Fatal error: Cannot use 'Object' as class name as it is reserved in xxx/Object.php on line 77
- 242. Valid Anagram
- CDH卸载
- PAT 甲级 1001. A+B Format
- C++ 通过jni生成库供JAVA调用(上) (C++之间的调用)