第一章 資料結構和演算法 (1)

2021-07-24 00:13:50 字數 1455 閱讀 1541

問題的引入 、本書的目的、本書主要講解的內容、演算法分析、本章內容:

德克薩斯州達拉斯市方圓500英里之內 有多少個城市 的人口超過25萬? 

乙個公司裡 有多少人 每年的年收入  超過10萬美元?

用不超過1000英里長的電纜 是否能把 所有的**使用者 都連線起來?

現在就正確回答諸如這樣的問題 是不可能的,因為 這裡還沒有給出  回答這些問題所必須要了解的資訊。(有了這些資訊後,而且還) 必須(要) 以能夠及時找到答案的方式

來組織資訊,才能滿足我們的需要。

資訊的表示是電腦科學的基礎。大多數電腦程式的主要目標與其說是完成運算,不如說是儲存資訊和盡快地檢索資訊(個人看法:現在的電腦程式 ,更多的時候是在 

儲和檢索資訊 ,而不是計算)。因此,研究 資料結構和演算法 就成了 電腦科學的核心問題。本書的目的  就是  幫助讀者理解 怎樣組織資訊,以便支援高效的資料處理。

本書有三個主要目的。第乙個目的是介紹常用的資料結構,這些 資料結構形成了乙個程式設計師的基本資料結構 工具箱。對於許多問題,工具箱裡的資料結構才是理想的選擇。

第二個目的是引入並加強「權衡』的概念,每乙個資料結構(針對相關的操作,如:遍歷,插入,查詢等)都有其相關的代價和效益的 權衡。本書通過列舉出不同的資料結構,並指出它們應用於實際問題時的代價和效益來討論「權衡」的概念。

第三個目的是 講解如何評估乙個資料結構或演算法的有效性。(個人看法:有效性是指 乙個資料結構針對某個具體的問題是否是最合適的)只有通過這樣的分析,才能確定工具箱中的哪乙個資料結構對於乙個新問題是最合適的。這種技術也使得程式設計師能夠判斷自己或者別人發明的新資料結構的價值。

(個人看法: 本書首先告訴你常用的資料結構有哪些,然後告訴你這些資料結構的代價和效率的權衡是怎樣的,最後告訴你  怎樣來評價乙個資料結構或演算法 對某個具體的問題是不是最合適的,在評價過程中應該會用到權衡的概念。)

對於乙個問題通常有多種解法,應該選擇哪一種呢?(個人看法:選擇的標準是下面兩個目標,應盡量滿足下面的兩個目標)計算機程式設計的核心有兩個目標(有時候它們相互衝突):

1、設計一種容易理解、編碼和除錯的演算法;(個人看法:方便程式設計師)

2、設計一種能有效利用計算機資源的演算法;(個人看法:方便計算機)

在理想情況下,最終的程式都能實現這兩個目標,有時把這樣的程式稱為是『完美的』 。 本書給出的演算法 和 程式例項在這種意義上講是趨於完美的。 與目標1有關的問題不是本書的目的,它們主要涉及到的是軟體工程原理;本書主要講的是與目標2有關的問題。

怎樣度量效率呢?第3章將給出 估算  一種演算法或者乙個電腦程式 的效率的方法,稱為演算法分析。演算法分析還可以度量乙個問題的內在複雜程度。以後的章節中只要介紹演算法就會用到演算法分析方法。用這種方法可以清楚的看到在解決同乙個問題時不同演算法在效率上的差異。

本章通過 提出 與 選擇和使用資料結構相關的話題,為後面的內容做準備。本章將先審視  乙個設計者為所要完成的任務 選擇 乙個合適資料結構   的過程,然後討論在程式設計中如何進行抽象,最後將探索問題、演算法和程式三者之間的關係。

第一章 資料結構和演算法概述

1 資料data 結構 structure 是一門研究組織資料方式的學科,有了程式語言也就有了資料結構。學好資料結構可以編寫出更加漂亮,更加有效率的 2 要學習好資料結構就要多多考慮如何將生活中遇到的問題,用程式去實現解決。3 程式 資料結構 演算法 4 資料結構是演算法的基礎,換言之,想要學好演算...

第一章資料結構和演算法簡介

資料是對客觀事物的符號表示,在電腦科學中是指所有能輸入到計算機中並能被電腦程式處理的符號的總稱.資料結構是相互之間存在一種或多種特定關係的資料元素的結合。資料結構 資料元素 關係 結構 資料在計算機中的表示稱為資料的儲存結構 任何乙個演算法的設計取決於選定的邏輯結構,而演算法的實現依賴於採用的儲存結...

資料結構第一章

1.程式設計的實質 資料表示和資料處理。資料表示的核心是資料結構,資料處理的核心是演算法。資料結構 演算法 程式 2.資料是資訊的載體,在電腦科學中是指所以所有能 輸入到計算機中並能被識別電腦程式和處理的符號集合。資料的分類 一是整體,實數等數值資料 二是文字,聲音,圖形和影象等非數值資料。資料元素...