选择问题——N个数中选择第K个最大数
来源:互联网 发布:淘宝 手机 退货地址 编辑:程序博客网 时间:2024/05/18 00:05
解法一:将N个数以递减顺序排序,输出第K个位置上的元素。
package kMax;import java.util.Scanner;public class max {public static void main(String[] args){int n;int k;int a[] = new int [100];Scanner s = new Scanner(System.in);n = s.nextInt();k = s.nextInt();for(int i = 0;i < n;i ++){a[i] = s.nextInt();}int t = 0;for(int i = 0;i < n-1; i++)for(int j = 0;j < n-1-i; j++){if(a[j+1] > a[j]){t = a[j];a[j] = a[j+1];a[j+1] = t;}}System.out.println(a[k-1]);}}
解法二:先把前K个元素读入数组并对其以递减顺序排序,再将剩下的元素再逐个读入。当新元素被读到时,如果它小于数组中第K个元素则忽略,否则就将其放到数组的正确位置上,同时将数组的一个元素挤出数组。算法终止时,位于第K个位置上的元素即为所求。
package kMax;import java.util.Scanner;public class max {public static void main(String[] args){int n,k;Scanner s = new Scanner(System.in);int a[] = new int[100];n = s.nextInt();k = s.nextInt();for(int i = 0;i < k; i++){a[i] = s.nextInt();}sort(a,k);int m;for(int i = 0;i < n - k; i++){m = s.nextInt();if(m > a[k-1]){a[k-1] = m; sort(a,k);}}System.out.println(a[k-1]);}//冒泡排序public static void sort(int a[], int n){int t;for(int i = 0;i < n-1; i++)for(int j = 0;j < n-1-i; j++){if(a[j+1] > a[j]){t = a[j];a[j] = a[j+1];a[j+1] = t;}}}}
阅读全文
0 0
- 选择问题——N个数中选择第K个最大数
- 选择问题——N个数中取第K个最大
- 选择问题(求N个数中第k个最大者)
- 选择问题(一组N个数确定其中的第K个最大者)
- 剑指offer (30)选择问题-----1.有一组N个数,确定其中第K个最大者;2.求最小的k个数
- 用败者树从N个数中选择最大的k个数字
- 快速选择(quick select) + 线性时间选择(linear-time select) - 求出n个数中第k大的数
- 快速选择(quick select) + 线性时间选择(linear-time select) - 求出n个数中第k大的数
- 线性选择 求n个数中第k小数
- 选择问题——选出第K个最大的元素
- 求在一组N个的数中找出第K个最大数
- 找出N个数中最大的K个不同的浮点数
- 算法导论-选择数组中第K小的数(选择问题)
- 设有一组N个数,求其中第K个最大者
- 找出N个整数中最大的K个数
- 找出N个整数中最大的K个数
- 找出N个整数中最大的K个数
- 找出N个整数中最大的K个数
- python爬虫之cookie方式自动登录巴比特网
- apap之web dynpro for abap----ALV初始化
- Xdebug 可以显示错误信息
- Java数据类型中String、Integer、int相互间的转换
- java关于IO从0开始【第一节】
- 选择问题——N个数中选择第K个最大数
- ArrayList输出的几种方法
- 【LLVM】《Getting Started with LLVM Core Libararies》读书笔记——IR和几个重要的类
- 手机验证码定时器
- AI人工智能分析-人脸识别和分析(人脸检测跟踪、获取特征长度、提取用于人脸特征、比较相似度)
- Tab标签实现
- eclipse windows 最实用快捷键
- 自定义view拖动远点案例
- 关于JAVA程序的kerbose认证的一些事儿