Java实现的快速查找算法示例

 更新时间:2017年09月12日 09:28:32   作者:Mr.洛洛  
这篇文章主要介绍了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操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • 举例讲解Java设计模式编程中Decorator装饰者模式的运用

    举例讲解Java设计模式编程中Decorator装饰者模式的运用

    这篇文章主要介绍了Java设计模式编程中Decorator装饰者模式的运用,装饰者模式就是给一个对象动态的添加新的功能,装饰者和被装饰者实现同一个接口,装饰者持有被装饰者的实例,需要的朋友可以参考下
    2016-05-05
  • java策略枚举:消除在项目里大批量使用if-else的优雅姿势

    java策略枚举:消除在项目里大批量使用if-else的优雅姿势

    这篇文章主要给大家介绍了关于Java彻底消灭if-else的8种方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2021-06-06
  • Spring Boot使用Hibernate-Validator校验参数时的长度校验方法详解

    Spring Boot使用Hibernate-Validator校验参数时的长度校验方法详解

    这篇文章主要给大家介绍了关于Spring Boot使用Hibernate-Validator校验参数时的长度校验方法的相关资料,在Spring Boot中可以使用Spring Boot Validation来对参数名称进行校验,需要的朋友可以参考下
    2023-08-08
  • Java实现简易的分词器功能

    Java实现简易的分词器功能

    搜索功能是具备数据库功能的系统的一大重要特性和功能,生活中常见的搜索功能基本上都具备了分词搜索功能.然而ES功能固然强大,但对于学生或小项目而言整合起来太费人力物力,若是写个分词器就会使项目锦上添花,使其不仅仅是只能单关键词搜索的系统,需要的朋友可以参考下
    2021-06-06
  • MyBatis-Plus实现多表联查的方法实战

    MyBatis-Plus实现多表联查的方法实战

    这篇文章主要给大家介绍了关于MyBatis-Plus实现多表联查的方法,MyBatis Plus是一款针对MyBatis框架的增强工具,它提供了很多方便的方法来实现多表联查,需要的朋友可以参考下
    2023-07-07
  • Eclipse maven项目lombok安装配置图解

    Eclipse maven项目lombok安装配置图解

    这篇文章主要介绍了Eclipse maven项目lombok安装配置图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Spring Boot XSS 攻击过滤插件使用

    Spring Boot XSS 攻击过滤插件使用

    这篇文章主要介绍了Spring Boot XSS 攻击过滤插件使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • java: 程序包com.fasterxml.jackson.annotation不存在的解决办法

    java: 程序包com.fasterxml.jackson.annotation不存在的解决办法

    当我们在导入程序之后,系统给出错误提示:java: 程序包com.fasterxml.jackson.annotation不存在,本文主要介绍了Java程序包不存在的三种解决方法,需要的朋友可以参考下
    2024-02-02
  • SpringCloud整合Nacos实现流程详解

    SpringCloud整合Nacos实现流程详解

    这篇文章主要介绍了SpringCloud整合Nacos实现流程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • JSP 开发之 releaseSession的实例详解

    JSP 开发之 releaseSession的实例详解

    这篇文章主要介绍了JSP 开发之 releaseSession的实例详解的相关资料,需要的朋友可以参考下
    2017-07-07

最新评论