• 一。《算法 第四版》环境搭建


      在开始看这套教材的时候,第一个程序Binary Search就不能正常运行下去,因为作者提供一些常用的方法,需要用到他提供的jar包,同时需要用到他提供的测试数据,为了便于代码的管理,我采用ecilpse对算法进行实现和调试,下面主要介绍一下环境的准备。

    一。环境准备

      在官网下载需要的jar包和数据 地址  ,下载jar包和一个数据集的压缩包,如下图

     

    二。创建项目

    2.1首先配置环境变量,将下载下来的jar包,配置到classpath中

    2.2创建一个普通的java项目,导入刚才的jar包

    以及解压后的数据,整体目录结构如下:

    2.3编写测试代码,主要是二分查找的方法,放在定义的包名下面

    import java.util.Arrays;
    
    import edu.princeton.cs.algs4.In;
    import edu.princeton.cs.algs4.StdIn;
    import edu.princeton.cs.algs4.StdOut;
    
    public class Test {
    
        public static void main(String[] args) {
             int[] whileList = In.readInts(args[0]);
                Arrays.sort(whileList);
                while(!StdIn.isEmpty()){
                    int key = StdIn.readInt();
                    if(rank(key,whileList)<0){
                        StdOut.println(key);
                    }
                }
        }
        
         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;
            }
    
    }
    View Code

    说明:其中的StdIn,StdOut方法是作者自定义的标准输入输出方法,根据函数名就可以知道具体想要实现的功能。

    2.4测试

      因为本书中的很多代码,都需要重定向(本文附录会介绍本书中的重定向和管道),例如二分查找,书中给出的查询方式是:java Test tinyW.txt < tinyT.txt ,在eclipse中采用如下的方式来进行测试:

    选中执行类run as --> Run  Configurations --> java Application (下面的执行类) -->Common

    Input File: 去选择要重定向的文件(<之后的文件)注意:这里的文件路径需要完整的路径

    Arguments:输入main函数中 agrs数组接受的参数,路径地址可以是相对地址。

      附录:重定向和管道

    本书中的两个例子(产生随机数和计算平均数):

    1.重定向:

    java RandomSeq 100 100.0 200.0 > data.txt  ====>回家执行的结果通过标准输出StdOut.print()输出到 data.txt的文件中,而不会打印在控制台

    java Average < data.txt ===> 通过标准输入StdIn,将data.txt文件中的内容读取出来,传给Average类进行操作。

    2.管道:将一个程序的输出当做另一个程序的输入

    java RandomSeq 100 100.0 200.0  | java Average  ===>将RandomSeq程序产生的100个平均数 最为 Average计算平均数的参数(这些动作的实际发生顺序是取决于操作系统)

    最后教材中所有算法我都会实现出来,并提交到github中。项目地址:https://github.com/yohzhangxin/Algorithms

  • 相关阅读:
    Postgresql 常用操作
    捡回reset的未提交修改
    Excel 97-2003版本内部结构与查看方法
    【WPF】EntityframeworkCore Update注意事项
    Mac版StarUML破解方法
    Excel2016 自定义RTDServer添加方法
    apache中开启SSL设置方法
    软件开发中的常用工具
    编程风格统一配置EditorConfig
    Windows10简单启动项目添加方法
  • 原文地址:https://www.cnblogs.com/yohzhangxin/p/9068437.html
Copyright © 2020-2023  润新知