Algs4-1.1.39随机匹配

Posted longjin2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Algs4-1.1.39随机匹配相关的知识,希望对你有一定的参考价值。

1.1.39随机匹配。编写一个使用BinarySearch的程序,它从命令行接受一个整型参数T,并会分别针对N=10^3、10^4、10^5和10^6将以下实验运行T遍:生成两个大小为N的随机6位正整数数组并找出同时存在于两个数组中的整数的数量。打印一个表格,对于每个N,给出T次实验中该数量的平均值。
解:
技术分享图片
import java.util.Arrays;
public class Test
{
    public static void main(String[] args)
    {
        int T=Integer.parseInt(args[0]);
        int repeatTime;
        int[] a;
        int[] b;
        for (int N=1000;N<=1000000;N=N*10)
        {
            repeatTime=0;
            a=new int[N];
            b=new int[N];
            for (int i=0;i<T;i++)
            {
                //generate array;
                for (int j=0;j<N;j++)
                {
                    a[j]=StdRandom.uniform(100000,1000000);
                    b[j]=StdRandom.uniform(100000,1000000);
                }
                //seach repeart
                Arrays.sort(b);
                for(int k=0;k<N;k++)
                    if(rank(a[k],b)>-1) repeatTime++;
            }//end for T
            StdOut.printf("T=%3d,N=%7d,AverageRepeartTime=%.2f ",T,N,1.0*repeatTime/T);
        }//end for N
    }//end main
   
      public static int rank(int key,int[]a)
    {
        int lo=0;
        int hi=a.length-1;
        while (lo<=hi)
        {
            int mid=lo+(hi-lo)/2;
            if (key<a[mid]) hi=mid-1;
            else if(key>a[mid]) lo=mid+1;
            else return mid;
          }
        return -1;
     }//end BinarySearch Rank
}//end class Test
















































以上是关于Algs4-1.1.39随机匹配的主要内容,如果未能解决你的问题,请参考以下文章

Actionscript Game - 随机问题匹配答案

生成随机密码和邮箱手机匹配

Python 随机匹配两个数组,例如业主和礼物

分层随机样本以匹配 BigQuery 中的不同表

UDF 随机数生成器类型不匹配

r 随机森林错误 - 新数据中的预测变量类型不匹配