【算法与数据结构】在n个数中取第k大的数(基础篇)
(转载请注明出处:http://blog.csdn.net/buptgshengod)
题目介绍
算法一
public class test {public static void main(String []args){int i,j;final int n=10;final int k=3;boolean flag=true;int[] list=new int[n];System.out.print("十个数里第三大的数");//题目System.out.println(); //换行for(i=0;i<10;i++){list[i]=(int) (Math.random()*100);//随机生成100以内十个数System.out.print(list[i]+",");} for(j=0;j<list.length-1;j++){for(i=0;i<list.length-1;i++){if(list[i]>=list[i+1]){}else{int m=list[i];list[i]=list[i+1];list[i+1]=m;}}}System.out.println(); //换行for(i=0;i<10;i++){ System.out.print(list[i]+",");} System.out.println(); //换行System.out.print("答案是"+list[k-1]);}
}
显示结果
算法二
public class Test {public static void main(String[] args){int i,j,m;final int n=10;final int k=3;int[] list=new int[n];System.out.print("十个数取第三大");//题目System.out.println();//换行for(i=0;i<list.length;i++){list[i]=(int) (Math.random()*100); System.out.print(list[i]+",");}/** 取数组前三个数,将其按冒泡法从大到小排序*/for(j=0;j<k-1;j++){for(i=0;i<k-1;i++){if(list[i]>=list[i+1]){}else{int t=list[i];list[i]=list[i+1];list[i+1]=t;}}}for(i=k;i<n;i++){if(list[k-1]>=list[i]){}else{list[k-1]=list[i];for(j=0;j<k-1;j++){for(m=0;m<k-1;m++){if(list[m]>=list[m+1]){}else{int t=list[m];list[m]=list[m+1];list[m+1]=t;}}}}}System.out.println();System.out.print("第三大的是"+list[k-1]);}}
显示结果
【算法与数据结构】在n个数中取第k大的数(基础篇)相关推荐
- 【LeetCode】快排-无序整数数组中找第k大的数(或者最小的k个数)
一个有代表性的题目:无序整数数组中找第k大的数,对快排进行优化. 这里先不说这个题目怎么解答,先仔细回顾回顾快排,掰开了揉碎了理解理解这个排序算法:时间复杂度.空间复杂度:什么情况下是复杂度最高的情况 ...
- n个数中找最大数c语言,N个数中找到第K大的数值(C语实现)
N个数中找到第K大的数值(C语实现) N个数中找到第K大的数值(C语实现) 研究生了,选了计算机算法这门课程,这周布置了一个作业,在OJ上做:**N个数中找到第K大的数值**.大一简单学过C语言基础, ...
- 如何在10亿个数中找到前1000大的数?
2019独角兽企业重金招聘Python工程师标准>>> 如何在10亿个数中找到前1000大的数? 定位 TopN问题 算法 排序不是最优的解决方案: 可以考虑分治法: 类似快速排序中 ...
- 无序数组中找第K大的数
类快排算法 leetcode215 由于只要求找出第k大的数,没必要将数组中所有值都排序. 典型解法:快速排序分组. 在数组中找到第k大的元素 取基准元素,将元素分为两个集合,一个集合元素比基准小,另 ...
- 在N个数中查找第K大的数字(Top K问题)
在N个乱序数字中查找第k大的数字,时间复杂度可以减小至 O(N*logN) O(N) O(1) O(2) 答案:B 所谓"第(前)k大数问题"指的是在长度为n(n>=k)的乱 ...
- 两个排序数组中找第k大的数
一.题目描述 给定两个已经排序好的数组,找到两者所有元素中第k大的元素 二.解法分析 解法一:参照归并排序 将两个有序数组变成一个有序数组:merge两个数组,然后求第k大的数,时间复杂度O(m+n) ...
- n个数中输出前m大的数
描述 n个数,要求输出其中的m个最大数 想法1 开辟辅助数组,用插入排序,将前m最大数插入到辅助数组中,时间复杂度O(n*m) 想法2 类似快速排序的想法,将前m大的数都聚到最左边,再进行一次排序输出 ...
- C语言——用 堆 实现求N个数中第K大的数
问题描述: 在N(0<N<100000)个数中,找出第K(0<k<100000)大的数. 例如:1,2,3,4,5,6,7,8,9 中第3大的数为 7. 输入: 输入有多组数据 ...
- leetcode 703. 数据流中的第K大元素 最小堆解法 c语言
如题: 设计一个找到数据流中第K大元素的类(class).注意是排序后的第K大元素,不是第K个不同的元素. 你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含 ...
最新文章
- kvm虚拟机命令梳理
- SpringMVC+hibernate+mysql+EASYUI的登陆+CRUD
- js移除某个class_用JS添加和删除class类名
- Django讲课笔记07:设置路由分发规则
- Python+matplotlib绘制等电位面图
- Num37 spring 事务 ssh整合
- VS2019 + Qt ERROR MSB4181 QtRunwork 返回了false,但未记录错误
- Matlab重建信号实验总结,实验三信号采样与重建(实验报告).doc
- 【并行计算-CUDA开发】GPGPU OpenCL/CUDA 高性能编程的10大注意事项
- 受力分析软件_大赛作品 | 关于Z型路灯受力情况分析
- 图解通信原理与案例分析-18:低功耗、远距离物联网无线通信技术LoRa概述与扩频通信的基本原理
- 系统开发方法和开发模型
- 南邮 | 计算机图形学大作业:Skybox + Shadow volume
- html在ie浏览器中中文为什么是乱码
- 三相电网的共模与差模
- 浙大这个班太牛气!诞生128家创业公司,总市值高达千亿
- vscode java乱码问题解决
- HTML5七夕情人节表白网页(新年倒计时-红色雪花) HTML+CSS+JS 求婚 html生日快乐祝福代码网页 520情人节告白代码 程序员表白源码 抖音3D旋转相册 js烟花代码 css爱
- 5W1H分析法(登陆)
- 完成ECshop的开源系统的详细过程
热门文章
- linux获取网卡的ip,Windows和Linux系统下获取多网卡的ip地址
- android+包+反编译,简单的Android之apk包反编译方法
- oracle 裸设备 ocr,裸设备建立RAC的OCR设备不一致的问题
- android 手机跑分,安兔兔安卓手机跑分性能榜公布:第一名实至名归?
- php mysql log文件怎么打开_如何查看mysql的日志文件
- python生成器杨辉三角_python 生成器生成杨辉三角的方法(必看)
- java文件递归_java递归处理文件夹和文件
- 项目背景介绍及文件系统基本概念简介
- 远程桌面连接后远程计算机注销,使用windows8.1 pro的远程桌面,当断开远程桌面时被控制端用户注销问题...
- 西工大与东北大学计算机,国内世界高水平大学排名:西北工业大学位居第一,东北大学排第二...