【算法讀書筆記】第一章 基礎

第一章 基礎

算法

算法 是一種 有限的,確定的,有效的,並適合用計算機程序來實現的解決問題的方法。

數據結構 是算法的副產品 或者 結果。

算法分析 是 爲一項任務選擇最合適的算法的過程。

1.1 基礎編程模型

基礎編程模型 : 把描述和實現算法所用到的語言特性,軟件庫和操作系統特性總稱爲 基礎編程模型。

1.1.10 二分查找

代碼功能:白名單過濾   ,根據輸入的數字判斷該數字是否在已知的數組中,如果不存在則打印在控制檯

 

import java.util.Arrays;
import edu.princeton.cs.algs4.*;

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]) {
				hi = mid - 1;
			} else if (key > a[mid]) {
				lo = mid + 1;
			} else {
				return mid;
			}
		}
		return -1;
	}
	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) == -1) {
				StdOut.println(key);
			}
		}
	}
}

命令行運行:

 

javac -classpath algs4.jar; BinarySearch.java
java -classpath algs4.jar; BinarySearch algs4-data\largeT.txt

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章