資料結構與演算法 概述

2021-10-08 00:28:06 字數 928 閱讀 5515

程式=資料結構+演算法資料結構與演算法

資料結構是資料之間的一種或多種特定關係的集合

資料結構分為邏輯結構(資料物件中資料元素之間的相互關係)和物理結構(資料結構在計算機中的儲存形式)

解決特定問題的求解步驟的描述,在計算機中表現為指令的有限序列,並且每條指令表示乙個或多個操作

特徵:輸入、輸出、有窮性、確定性、可行性

要求:正確性、可讀性、健壯性、時間效率高且儲存量低

通過設計後的測試程式和資料,利用計算機計時器對不同演算法程式設計的執行時間進行比較,從而確定演算法效率的高低

缺陷:費時費力,受測試環境影響大

在編寫電腦程式之前,依據統計方法對演算法進行估算

影響效率的因素

如果精確地研究執行次數是很累的,我們側重研究的是演算法隨著輸入規模擴大增長量的乙個抽象,重要的是把基本操作的數量和輸入模式關聯起來

函式的漸近增長

給定兩個函式f(n)和g(n),如果存在乙個整數n,使得對於所有的n>n,f(n)總是比g(n)大,那麼我們說f(n)的增長漸近快於g(n)

常數不會影響演算法的變化曲線,最高次項的係數也不重要,最重要的是最高次項的次數

在進行演算法分析是,語句總的執行次數t(n)是關於問題規模n的函式,進而分析t(n)隨n的變化情況並確定t(n)的數量t(n)=o(f(n))

推導大o階:

用1取代執行時間中的所有常數項

只保留最高次項

令最高次項的係數為1

大o階的分類:

另外地,o(迴圈)=迴圈執行次數n ^  複雜度

排列順序:o(1)在乙個演算法執行過程中臨時占用儲存空間大小的度量,s(n)=o(f(n))

複雜度預設為時間複雜度。時間複雜度描述執行時間的需求,空間複雜度描述空間的需求

資料結構與演算法概述

研一結束了,馬上要進入研二的生活了。接下來就要進入了找工作的階段。在網上查詢了各種找工作的面經,發現資料結構是應聘軟體行業必考的內容之一,並在資料結構在對自己的軟體設計水平的提高也有很大的幫助,所以從今天開始將進行資料結構的學習。在學習一樣東西之前,先要明白其含義。資料結構的定義如下 我們如何把現實...

資料結構與演算法概述

資料型別 程式語言中的資料型別是指具有預定義值得乙個資料集合,常見的資料型別有 整數型,浮點型,字串,字元等。一般有兩種資料型別 系統定義的資料型別 基本資料型別 使用者自定義的資料型別 使用者自定義的類,可以將系統定義的資料型別進行組合封裝成使用者需要的資料型別 class student 資料結...

資料結構與演算法概述

從問題入手比如人狼羊菜過河問題。問題抽象 首先需要分析和抽象問題的需求和限制,簡歷問題模型。目的 把人狼羊菜運到對岸 條件 資料抽象 接下來我們需要恰當的資料結構來描述這個數學模型。簡單排列組合我們發現系統一共有16種狀態 包括空狀態 但是按照條件我們能夠踢出 狼羊,人菜 與前者互補狀態 羊菜,人狼...