• 技术文章 >Java >java教程

    Java使用二分搜索法实现排序数索引功能实例讲解

    巴扎黑巴扎黑2017-09-19 11:39:34原创621
    这篇文章主要介绍了Java使用分治算法实现排序数索引功能,结合具体实例形式分析了java分治算法进行排序索引的相关操作技巧,需要的朋友可以参考下

    本文实例讲述了Java使用分治算法实现排序数索引功能。分享给大家供大家参考,具体如下:


    /**
     * Find the first q and return the index
     * First method is brutal force
     * Second may
     * be pid and Conquer
     *
     * @author open201
     *
     */
    public class Ono {
      /**
       * f(n) = s.length = n;
       *
       * @param s
       * @param q
       * @return
       */
      public static int BrutalForceSearch(int[] s, int q) {
        for (int i = 0; i < s.length; i++) {
          if (q == s[i])
            return i;
        }
        return -1;
      }
      /**
       * f(n) = log(n)
       *
       * @param s
       * @param q
       * @return
       */
      public static int DCSearch(int[] s, int q, int startIndex, int endIndex) {
        if (startIndex > endIndex)
          return -1;
        else {
          int mid = (startIndex + endIndex) / 2;
          if (s[mid] == q)
            return mid;
          else {
            if (s[mid] > q)
              return DCSearch(s, q, startIndex,mid-1);
            else
              return DCSearch(s, q, mid+ 1,endIndex);
          }
        }
      }
      public static void main(String[] args) {
        int [] s = new int[10000000];
        for(int i = 0;i<10000000;i++){
          s[i] = i;
        }
        int q = 10000000-1;
        long startTime = System.currentTimeMillis();
        System.out.println(BrutalForceSearch(s, q));
        long endTime = System.currentTimeMillis();
        System.out.println(endTime-startTime);
        startTime = System.currentTimeMillis();
        System.out.println(DCSearch(s, q, 0, s.length - 1));
        endTime = System.currentTimeMillis();
        System.out.println(endTime-startTime);
      }
    }

    以上就是Java使用二分搜索法实现排序数索引功能实例讲解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Java 实现 搜索
    上一篇:Java使用Math.random()结合蒙特卡洛方法计算pi值方法介绍 下一篇:Java静态动态的问题解决
    PHP编程就业班

    相关文章推荐

    • 归纳整理Java并发知识点• 一起聊聊Java常用数据类型的输入输出• 详细解析Java反射机制原理和几种Class获取方式• 图文详解!什么是Java内存模型• 图文详解Java数据结构与算法

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网