算法設(shè)計(jì)與問題求解(第2版·微課版)
定 價(jià):59 元
叢書名:面向新工科專業(yè)建設(shè)計(jì)算機(jī)系列教材
本書注重培養(yǎng)讀者的算法設(shè)計(jì)與分析、問題求解的能力。本書讀者需要掌握程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)等基礎(chǔ)知識(shí),并具備一定的編程能力。本書以算法設(shè)計(jì)與分析為主線,通過問題和案例引入內(nèi)容,重點(diǎn)講解利用算法求解問題的思路、算法執(zhí)行過程及能力拓展。本書主要介紹了算法基礎(chǔ)、遞歸算法設(shè)計(jì)、蠻力法、分治法、回溯法、貪心法、分支限界法、動(dòng)態(tài)規(guī)劃、圖算法設(shè)計(jì)等,講解了背包問題、任務(wù)分配問題、批處理作業(yè)調(diào)度問題、最優(yōu)裝載問題、旅行商問題、計(jì)算幾何等經(jīng)典問題,并提供了能力拓展環(huán)節(jié),引導(dǎo)讀者開展算法應(yīng)用實(shí)踐。算法使用C語言程序、偽代碼等形式加以描述,并用圖解的形式詳細(xì)描述算法的執(zhí)行過程,使讀者能夠深入了解算法的運(yùn)行過程和結(jié)果。本書可作為本科院校算法設(shè)計(jì)與分析的教學(xué)用書,也可作為從事算法設(shè)計(jì)的科技人員、算法競(jìng)賽選手的參考書及培訓(xùn)教材。
本書是國家級(jí)一流本科課程配套教材,配套資源豐富,有教學(xué)課件、視頻和源代碼等,注重計(jì)算思維能力訓(xùn)練,以及經(jīng)典算法設(shè)計(jì)和分析。
2019年發(fā)布了《關(guān)于深化本科教育教學(xué)改革,全面提高人才培養(yǎng)質(zhì)量的意見》,提出了大學(xué)教育要圍繞學(xué)生忙起來、激勵(lì)學(xué)生刻苦學(xué)習(xí)、全面提高課程建設(shè)質(zhì)量等要求,實(shí)施國家級(jí)和省級(jí)一流課程建設(shè)雙萬計(jì)劃,著力打造一大批具有高階性、創(chuàng)新性和挑戰(zhàn)度(兩性一度)的 金課,推動(dòng)課堂教學(xué)革命。為響應(yīng)號(hào)召,落實(shí)人才培養(yǎng)質(zhì)量意見,特編寫本教材來引導(dǎo)計(jì)算機(jī)類專業(yè)學(xué)生進(jìn)行創(chuàng)新性、高階性學(xué)習(xí),通過完成具有挑戰(zhàn)度的任務(wù),提高學(xué)生算法設(shè)計(jì)能力、問題求解能力。算法是解決復(fù)雜問題的精髓和靈魂,在信息技術(shù)飛速發(fā)展的今天,算法被廣泛應(yīng)用于工程問題、科學(xué)問題的求解,如背包問題、旅行商問題、作業(yè)調(diào)度問題、最優(yōu)裝載問題、任務(wù)分配問題等經(jīng)典問題,以及圖像分類、自然語言處理、智慧醫(yī)療等具有挑戰(zhàn)度的前沿科研、工程等問題。算法設(shè)計(jì)與問題求解能力是評(píng)判計(jì)算機(jī)類專業(yè)學(xué)生是否具有良好專業(yè)素養(yǎng)的標(biāo)準(zhǔn)之一。本教材的主要目的是: ①傳授經(jīng)典算法知識(shí),引導(dǎo)學(xué)生進(jìn)入算法領(lǐng)域,掌握基本的算法設(shè)計(jì)方法和藝術(shù); ②通過能力拓展和創(chuàng)新性的問題求解,培養(yǎng)計(jì)算機(jī)類專業(yè)學(xué)生的問題分析與建模能力,并通過程序語言加以實(shí)現(xiàn)的能力,指導(dǎo)學(xué)生開展高階性和高挑戰(zhàn)度的問題求解實(shí)踐。教師可以利用本教材方便地進(jìn)行教學(xué)改革,開發(fā)出以能力培養(yǎng)為導(dǎo)向的教學(xué)模式,跳出傳統(tǒng)知識(shí)傳遞型課堂的教學(xué)思維,切實(shí)落實(shí)以學(xué)生為中心的教學(xué)理念。本書針對(duì)計(jì)算機(jī)科學(xué)與技術(shù)、軟件工程、網(wǎng)絡(luò)工程、數(shù)據(jù)科學(xué)與大數(shù)據(jù)、數(shù)學(xué)等計(jì)算機(jī)相關(guān)專業(yè)的發(fā)展需求,全面介紹了算法的基礎(chǔ)知識(shí),詳細(xì)介紹了算法的特點(diǎn)及復(fù)雜度分析,同時(shí)介紹了蠻力法、遞歸法、分治法、貪心法、回溯法、分支限界法、圖算法、隨機(jī)算法、計(jì)算復(fù)雜性等經(jīng)典內(nèi)容,幫助讀者構(gòu)建算法基礎(chǔ)知識(shí)體系。在有的章節(jié)中引入了能力拓展環(huán)節(jié),引導(dǎo)讀者利用學(xué)習(xí)的算法知識(shí)來求解非傳統(tǒng)問題,提高課程的挑戰(zhàn)度。每章后提供了創(chuàng)新性的習(xí)題,進(jìn)一步鞏固讀者的計(jì)算思維能力和問題求解能力。本書的重點(diǎn)、難點(diǎn)部分提供了微課視頻,供讀者自學(xué)或者課后釋疑,從多個(gè)角度來引導(dǎo)讀者開展自主學(xué)習(xí),達(dá)到培養(yǎng)和提升讀者問題求解能力的目的。本書由鄧澤林、李峰主編,鄧澤林、李峰、陳曦、羅元盛等參與編寫。其中,李峰負(fù)責(zé)統(tǒng)籌編寫工作,鄧澤林負(fù)責(zé)整體規(guī)劃,并撰寫了第1章、第2章、第5章、第6章、第7章、第8章、第9章;陳曦負(fù)責(zé)編寫第4章、第11章;羅元盛負(fù)責(zé)編寫第3章、第10章、第12章。本書的編寫得到了黃舒怡、陳彬彬、周倩男、劉康為、陳文俊、鄭偉、賀達(dá)、杭帆、鄧俊、楊琰、李春杰等ACM選手的支持,他們?cè)趩栴}題解、算法實(shí)現(xiàn)上提供了大量的幫助。本書的課件通過掃描如下二維碼下載:算法設(shè)計(jì)與問題求解PPT
作者2023年11月
第1章算法基礎(chǔ)11.1算法概念11.2算法描述11.3算法主要類別及典型問題21.3.1遞歸法21.3.2遞推法21.3.3窮舉法31.3.4貪心算法31.3.5分治法41.3.6動(dòng)態(tài)規(guī)劃法41.3.7分支限界法51.3.8回溯法61.4算法復(fù)雜度61.4.1算法輸入規(guī)模度量61.4.2算法運(yùn)行時(shí)間的度量71.4.3漸進(jìn)符號(hào)71.4.4算法復(fù)雜度分析81.5標(biāo)準(zhǔn)模板庫131.5.1動(dòng)態(tài)數(shù)組vector的使用131.5.2集合set的使用151.5.3映射map的使用161.5.4棧stack的使用181.5.5隊(duì)列與優(yōu)先隊(duì)列的使用191.5.6排序sort的使用22習(xí)題24第2章遞歸算法設(shè)計(jì)252.1概念252.2遞歸算法設(shè)計(jì)思想25〖3〗算法設(shè)計(jì)與問題求解(第2版·微課版)目錄〖3〗2.3遞歸算法示例與過程分析262.3.1全排列問題262.3.2逆波蘭表達(dá)式282.4遞歸轉(zhuǎn)換302.4.1遞歸轉(zhuǎn)尾遞歸302.4.2遞歸轉(zhuǎn)非遞歸312.5能力拓展352.5.1K數(shù)列352.5.2自關(guān)聯(lián)樹狀數(shù)據(jù)362.5.3XML文件解析39習(xí)題43第3章蠻力法463.1概述463.2蠻力法的主要設(shè)計(jì)思想463.2.1使用蠻力法的幾種情況463.2.2蠻力法的求解步驟463.3蠻力法示例與分析473.3.1選擇排序473.3.2旅行商問題483.3.3字符串匹配蠻力解決503.3.401背包問題523.4能力拓展533.4.1連續(xù)數(shù)和533.4.2矩形個(gè)數(shù)54習(xí)題56第4章分治法594.1概述594.2分治法設(shè)計(jì)思路594.3分治法應(yīng)用與過程分析624.3.1最大子段和624.3.2歸并排序634.3.3棋盤覆蓋問題654.3.4最近點(diǎn)對(duì)問題684.3.5快速排序704.4能力拓展734.4.1二進(jìn)制的完全表示734.4.2求兩個(gè)等長有序序列的中位數(shù)744.4.3找第k大的元素76習(xí)題78第5章回溯法805.1概述805.2回溯法設(shè)計(jì)思路805.3回溯法示例與過程分析815.3.1n皇后問題815.3.201背包問題835.3.3圖的m著色問題855.3.4批處理作業(yè)調(diào)度問題885.4能力拓展915.4.1全排列問題915.4.2存在障礙物的迷宮問題935.4.3最少考場(chǎng)數(shù)量95習(xí)題97第6章貪心法1036.1概述1036.2貪心算法步驟及適用的問題1036.2.1貪心算法步驟1036.2.2適用貪心算法求解問題的特點(diǎn)1036.3貪心算法示例與過程分析1046.3.1部分背包問題1046.3.2最優(yōu)裝載問題1066.3.3區(qū)間調(diào)度問題1076.3.4旅行商問題1086.4能力拓展1106.4.1最小正整數(shù)1106.4.2數(shù)字游戲1116.4.3關(guān)閉鬧鐘1136.4.4過河114習(xí)題117第7章分支限界法1217.1概述1217.2分支限界法設(shè)計(jì)思路1217.3分支限界法示例與過程分析1237.3.101背包問題1237.3.2多段圖最短路徑問題1257.3.3旅行商問題1277.3.4作業(yè)調(diào)度問題1327.4能力拓展1377.4.1大富翁游戲1377.4.2最優(yōu)裝載問題138習(xí)題141第8章動(dòng)態(tài)規(guī)劃1448.1概述1448.2動(dòng)態(tài)規(guī)劃算法設(shè)計(jì)規(guī)則1448.3動(dòng)態(tài)規(guī)劃算法問題求解1458.3.101背包問題1458.3.2最長公共子序列1498.3.3最長上升子序列1538.3.4字符串相似度/編輯距離1588.3.5最大子段和1608.4能力拓展1638.4.1帶通配符的字符串匹配1638.4.2拼圖167習(xí)題170第9章圖算法設(shè)計(jì)1749.1概述1749.1.1圖的定義1749.1.2圖的相關(guān)概念1749.2圖算法示例與分析1759.2.1最短路問題1759.2.2網(wǎng)絡(luò)最大流問題1799.2.3二分圖染色問題1829.3能力拓展1849.3.1雜交育種1849.3.2小偷逃跑1889.3.3朋友滿意數(shù)量188習(xí)題192第10章計(jì)算幾何19910.1概述19910.2相關(guān)幾何知識(shí)20010.2.1向量20010.2.2點(diǎn)積和叉積20210.2.3基本應(yīng)用20310.2.4點(diǎn)是否在面內(nèi)20410.2.5方向20410.2.6面積和角度20510.2.7凸性20510.3計(jì)算幾何示例與分析20610.3.1點(diǎn)到直線的距離、判斷線段是否相交20610.3.2凸包問題(極角排序)21010.3.3利用叉積計(jì)算多邊形面積21210.4能力拓展21410.4.1不同直線計(jì)數(shù)21410.4.2面積最大的三角形21510.4.3面積最大的多邊形218習(xí)題221第11章計(jì)算復(fù)雜度理論22711.1計(jì)算模型22711.2P類和NP類問題23111.3NPC問題233習(xí)題234第12章概率算法和近似算法23612.1概率算法23612.1.1概率算法的基本概念23612.1.2概率算法的分類23712.1.3數(shù)值概率算法23712.1.4舍伍德算法23812.1.5拉斯維加斯算法24012.1.6蒙特卡羅算法24312.2近似算法24612.2.1介紹24612.2.2頂點(diǎn)覆蓋問題24712.2.3旅行商問題248習(xí)題249