數據結構——第一課

不知你和我是否一樣,當看到數據結構與算法這幾個字時,心中充滿了欣喜。
我是從學完C語言後看到這本書的,當時寒假放假前幾天盤算着看這本書(嚴奶奶的書)的計劃,可是,計劃很豐滿,現實很骨感。拿回家從第一頁開始讀起,一連讀了三天,然後就,那個假期再也沒看過。
究其原因,一是看書學習方法不對,二是沒有入門。學一些IT科目多了之後,你會發現,第二個原因真的很重要!(廢話不多說,主要是希望自己可以提供些前車之鑑,減少大家一些不必要犯錯的時間。共同加油!)

數據結構的概述

定義

我們如何把現實中大量而複雜的問題以特定的數據類型和特定的存儲結構保存到主存儲器(內存)中,以及在此基礎上爲實現某個功能(比如查找某個元素,刪除某個元素,對所有元素進行排序)而執行的相應的操作,這個相應的操作也叫做算法。

數據結構=個體+個體的關係
算法=對存儲數據的操作

狹義定義:

數據結構是專門研究數據存儲的問題
數據的存儲包含兩方面:個體的存儲 + 個體關係的存儲

廣義定義:

數據結構既包含數據的存儲也包含數據的操作
(對存儲數據的操作就是算法)

算法

一般定義:

解題的方法和步驟

狹義定義:

算法是和數據的存儲方式密切相關

廣義定義:

算法和數據的存儲方式無關,這就是泛型思想

衡量算法的標準:

(1) 時間複雜度

大概程序要執行的次數,而並非是執行的時間(因爲同一程序在不同機器上執行的時間是不一樣的,有差異)

(2) 空間複雜度

算法執行過程中大概所佔用的最大內存

(3) 難易程度

(4) 健壯性

數據結構的地位:
數據結構是軟件中最核心的課程
程序 = 數據的存儲 + 數據的操作 + 可以被計算機執行的語言

泛型:
對於同一種邏輯結構,無論該邏輯結構的物理存儲是什麼樣子的,我們可以對它執行相同的操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章