演算法第四版所用到需要下載的庫?

最近開始學習演算法(第四版),謝陸雲譯。但書上的提供網站是英文的,看不懂。希望學過的前輩們幫助提供下載,和說明放置到哪裡工作目錄?謝謝


更新一下:

收到很多私信問報錯如何解決的,我看了一下,基本都是因為沒有仔細看原書作者給的說明文檔:Hello, World in Java on Windows,所以我給翻譯了一下,放在我自己的博客上了:在Windows上安裝「演算法 第四版」組件,看不懂原文的可以照著這個做,如果沒有遇到GFW的話應該沒有問題,可以順利使用

另一個是有人私信詢問的問題是如何在Eclipse中使用,我也寫了一個簡易教程:在Eclipse中調用Algs4庫,有需要的話可以照著做,這樣就算是解決了所有的問題

——————————————————————

下面是原回答:

1. 安裝環境:原書的作者提供了一個一鍵安裝環境:Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne

不知道你用的什麼電腦,如果是windows:Hello, World in Java on Windows 訪問這個鏈接,點擊als4.exe(也可以直接點擊我給的這個鏈接直接下載: http://algs4.cs.princeton.edu/windows/algs4.exe )下載,下載到一個algs4.exe後雙擊安裝,默認會安裝好書里所需的全部Java環境,安裝目錄是C:/Users/YourName/algs4 。

不過我安裝時遇到些問題,主要是下載Java64.jar這個包時好像遇到牆了,掛了個代理才成功下載。OSX和Linux類似,安裝好環境之後可以直接在命令行運行書里的代碼

2. 如果你需要書里現成的代碼:Java Algorithms and Clients ,按照名字排列好的,找一找即可。

3. 書後答案:aistrate/AlgorithmsSedgewick · GitHub ,由於我還沒做完,所以沒有檢查到後面答案的完整性,前面兩章應該是沒什麼問題的

4. 原書作者講的公開課(全英文,有英文字幕,字幕有各種小瑕疵還不如自己聽):Coursera - Free Online Courses From Top Universities

ps:英語看不懂的話就先去學英語吧,演算法這玩意不會英語的話很難玩。

還有問題的話歡迎評論,新手入坑總是會遇到很多問題的

歡迎入坑,祝學習愉快~


最簡單的方法是你已經按照正確的方法建好了Java開發環境,有一個類似Eclipse的IDE,那麼你只需要將這個jar包 http://algs4.cs.princeton.edu/code/algs4.jar 引入到項目中即可。

Eclipse 參數設置 http://jingyan.baidu.com/article/93f9803fe5d2f3e0e46f5503.html

IDEA參數設置 Intellij IDEA15: 帶著參數 運行

另外,書中所有用到的數據文件都在這個文件中 http://algs4.cs.princeton.edu/code/algs4-data.zip。


如果已經安裝了java開發環境並且使用eclipse之類的IDE,或者按照作者官網的環境配置有錯的,推薦直接將algs4.jar包導入到項目中就可以了。

書中有很多使用命令行重定向的例子,比如在1.1.10中二分查找中使用tinyT.txt文件作為輸入,使用tinyW.txt文件作為參數,在eclipse中同樣可以做到,步驟:

tinyT文件作為輸入:Run -&> Run Configurations -&>選擇 Common -&>勾選input File,導入tinyT.txt。

tinyW文件作為參數:Run -&> Run Configurations -&>選擇 Arguments,在Program arguments框中輸入tinyW.txt。(注意把tinyW文件放在項目根目錄中,就是src的上一個文件夾)。

同樣參數的輸入也是在Program arguments框中輸入即可。

這樣就可以使用eclipse和原有java環境實驗和學習書中程序了。


我用的是IntelliJ IDEA編寫程序,將下載好的algs4.jar導入到IDEA的方法是:

  • 打開File-Project Structure,點左側的Modules,如下圖:

  • 點三個Tab中的Dependencies,點擊右欄中的「+」,選擇第一項JARS

  • 找到algs4.jar添加即可
  • 使用時加上

import edu.princeton.cs.algs4.*;

就可以去編寫書中的代碼了。


搞了好久,最後在豆瓣的一位網友發的命令行啟發下,解決了。

首先,如果是在Eclipse上配置的話,選菜單欄上:

Project(項目)—Properity(屬性)—Libraries(庫)—Add External JARs(添加外部庫)

1. 如果是在命令行上編譯運行導入外部庫的java文件,還是用原來的

javac 包名源文件名 // 編譯

java 包名.類名 // 運行

2. 這樣是會出錯的。所以現在將命令改成這樣。

【假設我的 algs4.jar 放在C:\Usersusernamealgs4】

【源文件 Test.java 放在E:\Javademodemo】

C:Usersusername&>e: // 先切換到源文件所在的路徑

E:&>cd javademo

E:Javademo&>javac -cp c:usersusernamealgs4algs4.jar demoTest.java

E:Javademo&>java -cp c:usersusernamealgs4algs4.jar; demo.Test

需要注意的是,jar文件要使用完整的路徑,然後運行的時候就是後面一定要帶上分號和空格,編譯的時候可以只加空格


看到大家的問答的方法都是下載和導入 jar 包,感覺不是很優雅啊,畢竟業界已經有了 Maven 和 Gradle 等構建工具。給大家一個 Maven 和 Gradle 解決方案。

### Maven

&

&org.coursera.algs4&

&Algs4 coursera course custom repository&

&https://raw.github.com/slok/algs4-mvn-repo/master&

&

&

&edu.princeton.cs.introcs&

&algs4-package&

&1.0&

&

&

&edu.princeton.cs.introcs&

&stdlib-package&

&1.0&

&

### Gradle

repositories {

maven { url "https://raw.github.com/slok/algs4-mvn-repo/master" }

}

dependencies {

compile "edu.princeton.cs.algs4:algs4:1.0"

}

原文地址: slok/algs4-mvn-repo


很多答案里都說了,windows環境下使用Hello, World in Java on Windows 里的algs4.exe直接安裝環境,但是很大程度上直接雙擊安裝會安裝失敗,因為安裝需要windows powershell,使用CMD是不行的,我的系統是win10,直接在搜索欄里搜索powershell,使用管理員許可權打開,然後cd 到algs4所在目錄,輸入./algs4.exe 執行程序,(powershell的命令基本和linux一致)。然後應該就成功了,若仍然不行就掛vpn


真的沒理解為啥不用java原生的工具,非要自己定義,浪費許多時間


需要用到的jar包下載後可以直接添加到環境變數使用


我就是想問一下演算法 第四版 P160里演算法比較時用的Stopwatch是如何使用的,這個不是eclipse默認的庫,安裝了algs4的jars後任然會報錯,沒有Stopwatch這個類,是需要自己編譯的嗎?


推薦閱讀:

最大流的最新演算法,複雜度低至O(VE),有實際應用價值嗎?為何很少見人提到?
編程實現能力比較差,應該如何彌補?
演算法導論貪心演算法活動安排的例子覺得有問題,看下哪裡問題?
鏈表中的哨兵是怎麼一個作用?

TAG:演算法 | 演算法設計 | 演算法競賽 |