java快速查找算法_Java实现的快速查找算法示例
本文实例讲述了Java实现的快速查找算法。分享给大家供大家参考,具体如下:
快速查找算法,可以根据想要找的是第几个大的数,每次循环都能固定下来一个数在数组完整排完序之后的位置,每次循环都能定一个数的位置,如果当前固定的数的位置和用户要找的第几个数匹配,则就直接返回。例如我要找第二大的数,如果循环一次固定的数的下标是1,那就是当前需要找的数。
代码如下:
// 快速查找算法
public static int quickSelect(int[] arr, int selectIndex) {
int s = 0;
int i = s+1;
while(i < arr.length) {
if(arr[i] < arr[0]) {
int t = arr[s+1];
arr[s+1] = arr[i];
arr[i] = t;
s += 1;
i = s+1;
continue;
}
i++;
}
// i找到最后之后将下表为s的值和第一个值交换
int temp = arr[0];
arr[0] = arr[s];
arr[s] = temp;
if(selectIndex-1 == s) {
return arr[s];
}else {
// 将数组不需要的切掉 用后一部分去回调
int arrs[] = new int[arr.length - s];
for(int j = s; j < arr.length; j++) {
arrs[j-s] = arr[j];
}
quickSelect(arrs, selectIndex);
}
return 0;
}
希望本文所述对大家java程序设计有所帮助。
java快速查找算法_Java实现的快速查找算法示例相关推荐
- java 算法_Java 浅谈数据结构和算法
以前不管自己还是朋友在面试java工程师岗位的时候,都会被问到这样的问题: "介绍下java中的数据结构和算法". 很多朋友被问到的时候发现无从下口,甚至特别是一些初级java工程 ...
- java 红包算法_JAVA实现拼手气红包算法
实现拼手气红包算法,有以下几个需要注意的地方: 抢红包的期望收益应与先后顺序无关 保证每个用户至少能抢到一个预设的最小金额,人民币红包设置的最小金额一般是0.01元,如果需要发其他货币类型的红包,比如 ...
- 中fifo算法_java线程池,工作窃取算法
前言 在上一篇<java线程池,Executors阿里开发规范中为什么禁止使用Executors?>中我们谈及了线程池,同时又发现一个现象,当最大线程数还没有满的时候耗时的任务全部堆积给了 ...
- java实现屏幕共享功能_Java是否足以快速实现屏幕共享?
在过去的几个月里,我和一个开发者一直在研究一个屏幕分享小程序,这个小程序可以流到像Wowza或Red5这样的媒体服务器上,但不管我们做什么,我们都有大约5秒的延迟,这个时间太长了一个人们正在互相交流的 ...
- java内存模型概述_Java内存模型-快速概述和注意事项
java内存模型概述 在计算中, 内存模型描述了线程如何通过内存交互,或更一般地,它指定了为分段内存或分页内存平台生成代码时允许编译器进行的假设. 在给定程序和该程序的执行跟踪的情况下,它实质上描述了 ...
- java变量三要素_Java零基础快速入门|变量
本文章主要内容:字面量 变量概述 使用变量 变量分类 变量作用域 难点疑惑 学习目标:理解变量本质是什么,在开发中有什么用? 变量三要素是什么? 怎么声明变量? 怎么给变量赋值? 变量是如何分类的? ...
- java随机数抽奖系统_Java实现游戏抽奖的算法
Java实现游戏抽奖的算法 发布时间:2020-05-29 13:27:44 来源:亿速云 阅读:282 作者:鸽子 Java开发游戏抽奖算法主要有随机数一一对应.离散法Alias算法等. 一.随机数 ...
- java中queue排序_Java中常见的排序算法有哪些?---选择排序
排序相关的的基本概念 排序: 将一组杂乱无章的数据按一定的规律顺次排列起来. 数据表( data list): 它是待排序数据对象的有限集合. 排序码(key):通常数据对象有多个属性域, 即多个数据 ...
- java统计词频算法_java实现的统计字符算法示例
本文实例讲述了java实现的统计字符算法.分享给大家供大家参考,具体如下: 统计字符: 概述:给定字符串,将它们进行分类,分别的去统计它们的个数及其字符 分类的有:字母 数字 中文 空格 等等 算法思 ...
最新文章
- docker 开启remote api
- 黑马程序员-异常介绍与处理
- 腾讯多任务模型MFH
- 数字图像噪声_Python
- 创建多个虚拟环境 windows python Anacoda tensorflow
- MySQL binlog相关分析
- mysql弱口令msf_Metasploit扫描Mysql弱口令
- vue入门--简单嵌套路由的一个路径小问题
- 【项目篇-项目创新点怎么写?(两千字图文总结建议)】创新创业竞赛项目计划书、新苗国创(大创)申报书
- 实时取色器(RGB)
- python正交表运用
- MySQL安装及使用手册
- EPSON LQ-675KT 打印机无法进纸解决方法
- 控制工程实践(7)——PID四种类型控制器(之比例控制器P)
- 读Leveraging Unimodal Self-Supervised Learning for Multimodal AVSR论文
- Life:歌曲学习之教一个不会唱歌的人学会唱出《情非得已》、《海阔天空》、《红日》、《老男孩》等歌曲
- D365几个功能开发思路
- snort实验(一)
- 原创 关于微信拼车小程序开发的需求分析(分析建模2)
- 霞浦职业中专学校计算机专业,霞浦职业中专学校
热门文章
- 线段树——HDU - 1698
- Ubuntu 彻底卸载 OpenCV
- 【TCP/IP详解 卷一:协议】第十九章 TCP的交互数据流
- linux内核调优参考
- maven工程出现java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener...
- 稀疏矩阵十字链表表示
- 方法 注释_注释模板导入操作方法
- git粘贴命令行_git进阶,ssh和命令行
- 站覆盖范围_你了解无线覆盖范围和穿墙能力吗?别再走进这些误区了
- oracle 10035 err 942,案例:Oracle日志报错 Fatal NI connect error 12170 TNS-12535 TNS-00505