• 技术文章 >Java >java教程

    Java排序数索引功能使用分治算法实现的示例

    黄舟黄舟2017-09-18 09:54:46原创583
    这篇文章主要介绍了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中关于HttpURLConnection附件上传详解 下一篇:Java如何模拟计算机的整数乘积计算功能实现的案例
    PHP编程就业班

    相关文章推荐

    • JAVA学习IO操作之字节流和字符流(总结分享)• Java学习总结之数组(整理分享)• Java工厂方法模式详解• 详细整理java枚举的使用总结• 带你完全掌握Java NIO(总结分享)

    全部评论我要评论

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

    PHP中文网