算法书籍-第一个例子二分法

在这里就不吐槽看算法书籍,自己配环境的艰苦,现在分享下详细的eclipse中第一个二分法案例。

注:详情请看书籍

1. 第一步下载algs4.jar包,从http://algs4.cs.princeton.edu/code/官网下载。

2. 在eclipse中创建一个项目,这个就不说了,然后将jar包copy进lib包下,右键build Path 将jar包添加进环境


3,在任意文件下创建tinyT.txt,tinyW.txt文件,内容如下:



4. 写代码

import java.util.Arrays;

import com.sun.org.apache.xalan.internal.xsltc.compiler.sym;

import edu.princeton.cs.algs4.In;
import edu.princeton.cs.algs4.StdIn;
import edu.princeton.cs.algs4.StdOut;

public class BinarySearch {
	
	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]) {
				lo = mid + 1;
			}else if (key < a[mid]) {
				hi = mid - 1;
			}else {
				return mid;
			}
		}
		
		return -1;
	}
	
	@SuppressWarnings("deprecation")
	public static void main(String[] args) {
		
		int[] readInts = In.readInts(args[0]);
		
		Arrays.sort(readInts);
		
		while (!StdIn.isEmpty()) {
			
			int readInt = StdIn.readInt();
			
			int rank = rank(readInt, readInts);
			
			if (rank < 0) {
				StdOut.println(readInt);
			}
		}
	}
}

5. 右键main函数, run as 选择 run configurations

6.点击common


其中文件路径要改成自己文件的路径

7. 添加main函数启动参数, 路径是自己文件的路径



8. 然后就可以运行了。。(具体问题在下方留言)

9. 下面是自己运行的发现,代码中的StdIn.readInt();这个存在问题,最后一位数读取不到,这是我自己的发现,可能是封装有点小错

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值