java编程:无序整数序列,求其中第K大的数。

来源:互联网 发布:tomcat 源码分析 pdf 编辑:程序博客网 时间:2024/06/06 14:11

编程笔试题

题目:无序整数序列,求其中第K大的数。

例如:输入第一行为整数序列,数字用空格分隔,如45 67 33 21

输入第二行一个整数k,如:2

输出第k大的数:45

思路:先将数组排序,由大到小的顺序,然后找出第k-1角标的数字,即为所求。

备注:网上笔试题,代码是参考网上别人的,具体出处找不到了,请谅解。摘抄记录下来方便日后学习。如果有问题尽请批评指正,希望可以和大神一起交流。

java代码如下:


import java.util.Scanner;public class Sorting0{public int[] sort(int[] num){for(int i=0;i<num.length;i++){        for(int j=0;j<num.length-i-1;j++){            if(num[j]<num[j+1]){                int n=0;                n=num[j];                num[j]=num[j+1];                num[j+1]=n;            }        }    }    return num;}public static void main(String[] args){Scanner sc=new Scanner(System.in); String[] nums = null; nums = sc.nextLine().split(" "); int num[]=new int[nums.length];for(int i=0;i<num.length;i++){num[i]=Integer.valueOf(nums[i]);}String n=sc.nextLine();int k=Integer.parseInt(n);   Sorting0 s=new Sorting0();           s.sort(num);     System.out.println(num[k-1]);}}





原创粉丝点击