TOP
0
0
古典詩詞的女兒-葉嘉瑩
算法設計與問題求解:編程實踐(簡體書)
滿額折

算法設計與問題求解:編程實踐(簡體書)

商品資訊

人民幣定價:35 元
定價
:NT$ 210 元
優惠價
87183
海外經銷商無庫存,到貨日平均30天至45天
下單可得紅利積點:5 點
商品簡介
作者簡介
名人/編輯推薦
目次
書摘/試閱
相關商品

商品簡介

本書以問題求解為目標,以高級程序設計語言C/C++為工具,討論怎樣綜合運用算法(包括數據結構)知識去分析問題和解決問題。問題驅動,高級語言程序設計、數據結構以及算法設計與分析知識交叉融合是本書的特點。配套理論教學的電子課件;實踐教學用“在線程序評測系統”。包括問題求解與算法分析概述、基本數據結構、高級數據結構、枚舉算法、遞歸與分治、 動態規劃、貪心算法、搜索算法、圖算法、算法分析的實用公式、在線程序評測系統簡介等。

作者簡介

李清勇,博士研究生,研究方向為計算機視覺、人工智能。參與了北京市實驗教學示范中心——北京交通大學計算機實驗教學中心大學生創新實踐項目。主要負責算法設計與分析的教學工作。

名人/編輯推薦

本教材提供適用于理論教學的課件以及實踐學習的配套平臺。

目次

第1章計算機問題求解概述
1.1問題與問題實例
1.2計算機問題求解周期
1.3算法與程序
1.4算法復雜性分析
1.4.1空間復雜性
1.4.2時間復雜性
1.4.2.1時間復雜性的表示
1.4.2.2漸近時間復雜性及其階
1.4.2.3時間復雜性漸近階的意義
1.4.2.4算法時間復雜性分析
習題1
第2章程序設計語言與數據結構
2.1程序設計語言的“盲點”
2.1.1 long不夠長
2.1.1.1數據類型的值域
2.1.1.2大整數相加算法
2.1.2 double不夠準
2.1.2.1浮點數的存儲格式
2.1.2.2浮點數的有效數字
2.1.2.3高精度浮點數處理實例
2.1.3遞歸不夠快
2.2基本數據結構
2.2.1線性表
2.2.1.1線性表的順序存儲結構
2.2.1.2線性表的鏈式存儲結構
2.2.2棧和隊列
2.2.2.1棧
2.2.2.2隊列
2.2.3樹和二叉樹
2.2.3.1樹
2.2.3.2二叉樹
2.2.4優先隊列和堆
2.2.4.1優先隊列
2.2.4.2二叉堆
2.2.5圖
2.2.5.1鄰接矩陣
2.2.5.2鄰接表
2.3標準模板庫
2.3.1模板的基本概念
2.3.2標準模板庫概述
2.3.2.1算法
2.3.2.2容器
2.3.2.3迭代器
2.3.3標準模板庫應用
2.3.3.1向量(vector)
2.3.3.2集合和多重集合(set和multiset)
2.3.3.3映射和多重映射(map和multimap)
2.3.3.4堆(heap)
2.3.3.5排序算法
習題2
第3章枚舉算法
3.1枚舉的基本思想
3.2模糊數字
3.3m錢買n雞
3.4真假銀幣
習題3
第4章遞歸與分治
4.1遞歸程序
4.2分治策略的基本原理
4.3合并排序
4.4逆序對問題
4.5快速排序
4.6最接近點對問題
4.7指數運算
4.8二分查找
習題4
第5章動態規劃
5.1動態規劃的基本思想
5.1.1動態規劃的基本要素
5.1.2動態規劃的求解步驟
5.2矩陣連乘
5.3最優二叉搜索樹
5.4多段圖最短路徑
5.5最長公共子序列
5.60—1背包問題
5.7最大上升子序列
習題5
第6章貪心算法
6.1貪心算法的基本要素
6.2活動安排問題
6.3小數背包問題
6.4最優前綴碼
6.5單源最短路徑
6.6最小生成樹
6.6.1 Prim算法
6.6.2 Kruskal算法
6.7貪心算法與動態規劃、分治算法的比較
習題6
第7章搜索技術
7.1問題的狀態空間表示
7.2深度優先搜索
7.3廣度優先搜索
7.4回溯算法
7.4.1回溯算法的基本原理和框架程序
7.4.2裝載問題的回溯算法
7.4.3圓排列問題
7.5分支限界
7.5.1分支限界法的基本原理
7.5.2裝載問題的分支限界法
7.6啟發式搜索
7.6.1啟發式搜索基本原理
7.6.2裝載問題的啟發式搜索
習題7
附錄A復雜性分析的數學基礎
附錄B常用C語言和STL函數
附錄C程序設計競賽和OnlineJudge介紹
參考文獻

書摘/試閱



從上述程序中,不難發現Dijkstra算法的關鍵操作在于更新lowLR的值和貪心比較,其執行的次數為O(n2),因此,Dijkstra算法的時間復雜性為O(n2)。
3.算法的正確性證明
要證明Dijkstra算法的正確性,等價于證明以下命題:
【命題6—6】設G=是有向帶權圖,且任意邊的權重為非負數,即ω(e)>0,Ve∈E。令u∈V是源頂點,short[x]是從v到x的最短路徑長度。頂點集S是當前最短路徭樹中的頂點集,對于V—S中的任意頂點u,dist[u]表示從源頂點v到u的最短受限路徑長度。那么,對于任意正整數k,當Dijkstra算法執行到第忌步時,Vi∈S,有dist[i]=short[i]。
證明(數學歸納法):對執行步數k進行歸納。
歸納基礎:k=1,S={v}時,顯然,dist[v]=shortly]=0。
歸納步驟:假設對于k,命題為真,即算法前k步選擇的結點i都有dist[i]=short[i]。算法在第k+1步,選擇了頂點u,且加入最短路徑樹的邊為,P∈S,如圖6—7所示。如果dist[u]≠short[u],則至少存在一條從v到u的更短路徑L,L中第一次離開S的邊記為,其中x∈S,y∈V—S。

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 183
海外經銷商無庫存,到貨日平均30天至45天