输入一个无序序列,输出第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
原创粉丝点击