商品詳情
內文簡介
- ——在日暢銷兩萬冊,獲頒日本「IT工程師書籍大獎2021特別獎」—— 演算法不只是知識,更該是解決問題的手段── 從理解演算法的設計技法、資料結構、圖演算法到解決問題, 透過大量圖解、程式競賽例題與實際案例, 告訴你如何真正學會並應用演算法,具體解決現實生活中的難題! 『會寫演算法』跟『獲得高效率的成果』這兩件事有很大的落差。 該怎麼做才能獲得效率良好的結果──亦即該採用什麼樣的演算法比較好? 對於這些問題點,本書作了範圍寬廣又清楚明瞭的解說。 而且本書是針對演算法初學者,用能夠引發對演算法興趣的方式撰寫。 如果想要向成為演算法高手踏出第一步,那麼本書是最適合不過的了。」 ──日本國立資訊學研究所副所長 河原林健一 專業推薦 不論你是想要成為一名程式設計/軟體工程師,或是必須在大學課程獲取學分,或是想在程式設計競賽中獲勝,都會需要學習演算法的基礎知識。 即使「人工智慧」、「量子電腦」等新科技不斷發展,任何涉及軟體工程或電腦科學的技術人士,都必須理解本書中的演算法基礎知識。 與日新月異變化快速的領域不同,演算法的基礎知識可謂「終身受用」,不管要從事什麼樣的領域,都能成為你的優勢與靠山。 此外,演算法的力量不僅止於單純的知識,它對程式設計也有直接的幫助。 如果能把演算法變成自己的工具,自行選擇合適的演算法,甚至自己設計需要的演算法,你能解決問題的範圍就可以大為擴展。 此外,基本的演算法和資料結構,還能提供程式語言的功能和標準函式庫等。 透過了解它們的機制與原理,就更能掌握操作的特性及提高速度。 由程式競賽經驗豐富的兩位作者所撰寫的本書,目標是希望幫助讀者「把演算法變成自己的工具」。 除了介紹著名的演算法,為你打下扎實的重要基礎外,更將重點放在演算法的應用和設計上,教你如何利用演算法的力量找出方法、解決問題。 本書不僅是入門書,也是一本收錄程式設計比賽網站AtCoder眾多例題、精進C++編碼技巧的實用書,滿載資訊科學學習者受用的內容。 ▍從認識演算法、設計技法、實際應用到參加競賽,一本帶你確實精進程式設計力的絕佳指南 本書共有18章,主要可分為「演算法設計技法」、「資料結構」、「圖演算法」三大主題, 循序漸進認識演算法、演算法的設計技法、資料結構、圖(graph),最後解說P與NP相關主題及難以設計出能有效求解演算法的難題該如何應對。 首先,在第1和第2章,作者概述了演算法和計算複雜度。 接下來,第3至第7章將是本書的主要部分,詳細解釋「演算法設計技法」。 過往許多演算法相關書籍僅在後半部分簡單介紹,但本書希望訓練讀者能夠實際應用這些設計法來解決現實世界的問題, 因此會在前半部分即詳細解釋這些設計技法,並在後半部分示範如何實際應用。 在第8至第11章,作者將針對「資料結構」進行解說,這在要有效實現設計出的演算法時非常重要。 此外,透過學習資料結構,你將能夠改進演算法的計算複雜度, 並且理解像C++和Python等程式語言中提供的標準函式庫的運作方式,以便有效應用。 在第12章,作者將討論排序演算法,接著在第13至第16章中解釋圖演算法。 圖是一個非常強大的數學工具,許多問題可以通過將其化為圖問題來更清晰地處理。 此外,在設計圖演算法時,將會運用前面學到的設計技法和資料結構。 最後,在第17章,作者將解釋有關P和NP的話題,並理解世界上仍存在許多「難以設計出有效的演算法以解決的難題」。 第18章中,作者將統整如何應對這些難題的方法。 除了搭配豐富圖解的以上主要內容外,每章末更附有各種不同難易度的練習題, 幫助讀者確認是否理解章節內容,以及是否能夠運用學習到的概念實際解決難題。 其中更包括AtCoder程式設計競賽的精華考古題, 更幫助想參加各種程式設計競賽的你,進一步開發自我潛能,增進程式設計能力,在賽場上奪得佳績。 作者簡介 大槻兼資 1988年生。2014年東京大學研究所資訊理工學系碩士課程修畢。取得碩士學位(資訊理工學)。目前任職於NTT DATA Mathematical Systems Inc.。並在《Software Design》雜誌連載〈解謎鍛鍊演算法能力〉。另外還有在Qiita等推動解說演算法相關主題的啟蒙運動。對於程式設計競賽,目前也作為興趣的一環而持續參加中。 秋葉拓哉 1988年生。2015年東京大學研究所資訊理工學系研究科博士課程修畢。取得博士學位(資訊理工學)。目前為Preferred Networks股份公司的執行委員。從事機器學習系統、大規模並聯分散式機器學習的研究開發。著有《挑戰程式設計競賽第2版》Mynavi出版(2002)等。學生時代著迷於程式設計競賽,在日本國內大賽獲得多次優勝,並有出席國際大賽超過10次以上的經驗。 譯者簡介 陳韋利 台大化工所碩士暨學士,多年來翻譯化工與電子領域之日文專利與技術文件。現為專職譯者,譯作有《英語大勉強—英語關鍵會話110》、《學字根,不用背單字》(凱信出版),另譯有許多技術文件與學術文獻,領域橫跨化工、電子、醫藥、政策、災害防治等。 馬毓晴 交通大學電信研究所畢,曾在國際專利事務所擔任工程師,具有處理電機領域之日文專利的經驗。現職為軟體工程師。 莊永裕(審訂) 日本東京大學情報理工學博士。現任中央大學資工系副教授、台灣軟體工程學會理事。主要研究領域為程式語言、程式教育以及軟體工程。ACM、IEEE、IPSJ、SEAT、TELDCA學會會員。曾任東京大學情報理工學系研究科助理教授,旅居日本多年。譯有數本程式語言與軟體開發相關之日文書籍。日常興趣為旅行、攝影、小說與音樂。