什麼是資料結構?
程式設計=資料結構+演算法
資料結構就是關係,即資料元素相互之間存在的一種或多種特定關係的集合。
資料結構分為邏輯結構和物理結構。
邏輯機構:資料物件中資料元素之間的相互關係
物理結構:資料的邏輯結構在計算機中的儲存形式。
四大邏輯結構:
1. 集合結構:結構中的資料元素同屬於乙個集合,沒有其他關係。
2. 線性結構:結構中的資料元素之間是一對一的關係。
3. 樹形結構:資料元素之間存在一對多的層次關係。(傳銷金字塔..)
4. 圖形結構:資料元素之間多對多的關係。(人類之間的關係,各個個體之間都有關係)
物理結構:
研究如何將資料元素儲存到計算機的儲存器中。(記憶體的儲存方式)
儲存器:主要針對記憶體而言,像硬碟、軟盤、光碟等外部儲存器的資料組織通常用檔案結構來描述。
資料組織的儲存結構形式兩種:順序儲存&鏈式儲存
順序儲存結構:把資料元素存放在位址連續的儲存單元裡,資料間的儲存關係和物理關係一致。例如程式語言中的陣列結構。
【結構中元素的順序可能時常有變化,順序儲存結構就不適應了,需要鏈式儲存結構】
鏈式儲存結構:把資料元素儲存在任意的儲存單元裡,儲存單元可連續也可不連續。這樣的儲存關係不能反映其邏輯關係,因此需要用乙個指標存放(下乙個)資料元素的位址,通過位址可以找到相應資料元素的位置。
【類似銀行排隊叫號,排隊者關注的主要是前乙個號的人是否被叫到】
演算法的特效:
輸入:演算法具有0個或多個輸入
輸出:演算法至少有乙個或多個輸出
有窮性:演算法在執行有限步驟後,自動結束而不會出現無限迴圈,並且在可接受的時間範圍內完成
確定性:演算法的每個步驟都具有確定的含義,不會出現二義性
演算法在一定條件下,一條執行路徑,相同的輸入只有有唯一的輸出
演算法的每個步驟都應精確定義而無歧義
可行性:演算法每一步都必須可行,即每一步都能夠通過執行有限次數完成
未完成作業
分治 1.一元三次方程求解 1015 2.迴圈比賽日程表 3.求方程的根 5.黑白棋子的移動 1310 6.光榮的夢想 2323 7.小車問題 1668 8.方程分f x 的根 9.求逆序對 1198 10.迴圈比賽 11.二分查詢 1135 12.麥森數 1030 動態規劃 挖地雷 取數字問題 搜...
通訊 未完成
網路程式設計對於後端開發來說也是非常重要的一部分,常見的使用案例包含,郵件 web伺服器 rpc等底層通訊模型都離不開通訊。及j a是第乙個從一開始就為網路應用而設計的程式語言,最早的兩個實用j a應用的程式之一就是web瀏覽器,隨著internet的不斷發展,j a成為了唯一適合構建下一代網路應用...
Warshall演算法 未完成版4 6
a是乙個基數為n的集合,r是a上的乙個關係,則有r r r 2 r3 r n 換句話說,計算不需要用到r的n次以上的冪。a,b是a中的元素,假設是r中一條從a到b的路,那麼都在r中。如果和是同乙個頂點,約定j i,那麼這段路能被劃分為三個部分。第一段從a到,第二段從到,第三段從到b。中間的第二段是個...