zoukankan      html  css  js  c++  java
  • Algs4-1.4.16最接近的一对(一维)

    1.4.16最接近的一对(一维)。编写一个程序,给定一个含有N个double值的数组a[],在其中找到一对最接近的值:两者之差(绝对值)最小的两个数。程序在最坏情况下所需的运行时间应该是线性对数级别的。
    答:一个简单的实现,不 考虑多对最近点。

    import java.util.Arrays;
    public class TheNearest
    {
        public static int nearset(double[] a)
        {
            Arrays.sort(a);
            double dist=Math.abs(a[a.length-1]);
            double dist2;
            int nearsetIndex=-1;
            for(int i=0;i<a.length-1;i++)
            {
                dist2=Math.abs(a[i]-a[i+1]);
                if (dist2<dist)
                {
                    dist=dist2;
                    nearsetIndex=i;
                }
            }//end for
            return nearsetIndex;
        }
       
        public static void main(String[] args)
        {
             double[] a=In.readDoubles(args[0]);
             int i=nearset(a);
             StdOut.printf("%d,%d",i,i+1);
        }
    }
  • 相关阅读:
    VirtualBox 使用技巧
    ThreadPoolExecutor 线程池任务队列分析 与 利特尔法则(Little's law)
    AQS 与 LockSupport
    Matrix
    Fire Net
    Travelling
    Cannon
    N皇后问题
    Safecracker
    #include <algorithm>中sort的一般用法
  • 原文地址:https://www.cnblogs.com/longjin2018/p/9854430.html
Copyright © 2011-2022 走看看