1.什麼是資料結構?
資料結構(data structure)是帶有結構特性的資料元素的集合,它研究的是資料的邏輯結構和資料的物理結構以及它們之間的相互關係,並對這種結構定義相適應的運算,設計出相應的演算法,並確保經過這些運算以後所得到的新結構仍保持原來的結構型別。簡而言之,資料結構是相互之間存在一種或多種特定關係的資料元素的集合,即帶「結構」的資料元素的集合。「結構」就是指資料元素之間存在的關係,分為邏輯結構和儲存結構。
資料的邏輯結構和物理結構是資料結構的兩個密切相關的方面,同一邏輯結構可以對應不同的儲存結構。演算法的設計取決於資料的邏輯結構,而演算法的實現依賴於指定的儲存結構。
資料結構的研究內容是構造複雜軟體系統的基礎,它的核心技術是分解與抽象。通過分解可以劃分出資料的3個層次;再通過抽象,捨棄資料元素的具體內容,就得到邏輯結構。類似地,通過分解將處理要求劃分成各種功能,再通過抽象捨棄實現細節,就得到運算的定義。上述兩個方面的結合可以將問題變換為資料結構。這是乙個從具體(即具體問題)到抽象(即資料結構)的過程。然後,通過增加對實現細節的考慮進一步得到儲存結構和實現運算,從而完成設計任務。這是乙個從抽象(即資料結構)到具體(即具體實現)的過程。
研究物件:
指反映資料元素之間的邏輯關係的資料結構,其中的邏輯關係是指資料元素之間的前後間關係,而與他們在計算機中的儲存位置無關。邏輯結構包括:
1.集合:資料結構中的元素之間除了「同屬乙個集合」 的相互關係外,別無其他關係;
2.線性結構:資料結構中的元素存在一對一的相互關係;
3.樹形結構:資料結構中的元素存在一對多的相互關係;
4.圖形結構:資料結構中的元素存在多對多的相互關係。
2.什麼是演算法?
演算法(algorithm)是指解題方****而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規範的輸入,在有限時間內獲得所要求的輸出。如果乙個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。乙個演算法的優劣可以用空間複雜度與時間複雜度來衡量。
演算法中的指令描述的是乙個計算,當其執行時能從乙個初始狀態和(可能為空的)初始輸入開始,經過一系列有限而清晰定義的狀態,最終產生輸出並停止於乙個終態。乙個狀態到另乙個狀態的轉移不一定是確定的。隨機化演算法在內的一些演算法,包含了一些隨機輸入。
形式化演算法的概念部分源自嘗試解決希爾伯特提出的判定問題,並在其後嘗試定義有效計算性或者有效方法中成形。這些嘗試包括庫爾特·哥德爾、jacques herbrand和史蒂芬·科爾·克萊尼分別於2023年、2023年和2023年提出的遞迴函式,阿隆佐·邱奇於2023年提出的λ演算,2023年emil leon post的formulation 1和艾倫·圖靈2023年提出的圖靈機。即使在當前,依然常有直覺想法難以定義為形式化演算法的情況。
演算法的特徵:
有窮性演算法的有窮性是指演算法必須能在執行有限個步驟之後終止;
確切性演算法的每一步驟必須有確切的定義;
輸入項乙個演算法有0個或多個輸入,以刻畫運算物件的初始情況,所謂0個輸入是指演算法本身定出了初始條件;
輸出項乙個演算法有乙個或多個輸出,以反映對輸入資料加工後的結果。沒有輸出的演算法是毫無意義的;
可行性演算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步驟,即每個計算步驟都可以在有限時間內完成(也稱之為有效性)。
演算法的要素:
資料物件的運算和操作:計算機可以執行的基本操作是以指令的形式描述的。乙個計算機系統能執行的所有指令的集合,成為該計算機系統的指令系統。乙個計算機的基本運算和操作有如下四類:
1.算術運算:加減乘除等運算
2.邏輯運算:或、且、非等運算
3.關係運算:大於、小於、等於、不等於等運算
4.資料傳輸:輸入、輸出、賦值等運算
二、演算法的控制結構:乙個演算法的功能結構不僅取決於所選用的操作,而且還與各操作之間的執行順序有關。
問題:最大子列和
個人認為這個題目還是比較簡單的,有點像毛毛蟲演算法,就從頭開始乙個個加,
然後把值進行比較後存起來,如果當前值是乙個負數,就將當前值清0,如此完成整個陣列就ok了。
python第一章筆記 第一章 基礎
參與除法的兩個數中有乙個數為浮點數,結果也為浮點數 如 1.0 2,1 2.0,1.0 2.0 python print 1.0 2 結果 0.5 print 1 2.0 結果 0.5 print 1.0 2.0 結果 0.5 整數 整數,計算結果的小數部分被截除,只保留整數部分 不會四捨五入 如 ...
第一章 緒論
1.16 void print descending int x,int y,int z 按從大到小順序輸出三個數 print descending 1.17 status fib int k,int m,int f 求k階斐波那契序列的第m項的值f gender char schoolname 校...
第一章 概述
1.模擬量輸入,輸出,開關量 閃爍 輸入,輸出及資料通訊 2.模擬量大多為開關量 3.mcu前做為前端採集器,mcu 感測器 4.開發步驟 1 i o分析 2 mcu造型 3 評估系統及相關硬體 4 設計硬體系統 5 硬體系統模組測試 6 軟體系統設計 7 系統測試 8 進一步工作 5.交叉編譯 6...