演算法第四版所用到需要下載的庫?
最近開始學習演算法(第四版),謝陸雲譯。但書上的提供網站是英文的,看不懂。希望學過的前輩們幫助提供下載,和說明放置到哪裡工作目錄?謝謝
更新一下:
收到很多私信問報錯如何解決的,我看了一下,基本都是因為沒有仔細看原書作者給的說明文檔: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.javaE:Javademo&>java -cp c:usersusernamealgs4algs4.jar; demo.Test 需要注意的是,jar文件要使用完整的路徑,然後運行的時候就是後面一定要帶上分號和空格,編譯的時候可以只加空格看到大家的問答的方法都是下載和導入 jar 包,感覺不是很優雅啊,畢竟業界已經有了 Maven 和 Gradle 等構建工具。給大家一個 Maven 和 Gradle 解決方案。
### Maven
&
&
&
&
### Gradle
repositories {
dependencies {
原文地址: 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),有實際應用價值嗎?為何很少見人提到?
※編程實現能力比較差,應該如何彌補?
※演算法導論貪心演算法活動安排的例子覺得有問題,看下哪裡問題?
※鏈表中的哨兵是怎麼一個作用?