資料結構與演算法學習筆記

2021-07-10 03:34:25 字數 742 閱讀 1909

演算法基礎篇

第一章:演算法概述

首先了解一下基本的概念:

1.1

什麼是演算法呢?從字面意義上理解,演算法就是用於計算的方法,用這種方法達到預期的結果。通俗的講,演算法可以理解為乙個完整的解題步驟,由一些基本的運算和規定的運算順序組成。通過這樣的解題步驟可以解決特定的問題。

演算法可以抽象出5個特徵:有窮性,確切性,輸入,輸出和可行性。

1. 有窮性:演算法的指令或步驟執行的次數是有限的,且執行時間也是有限的。

2. 確切性:演算法的每乙個指令或步驟都必須有明確的定義和描述。

3. 輸入:演算法應該有想應的輸入條件,用來刻畫運算物件的初始情況。

4. 輸出:演算法應有明確的演算法輸出。

5. 可行性:演算法的執行步驟是可行的。且在有限時間內完成。

演算法的優劣由演算法複雜度衡量,複雜度可分為時間複雜度和空間複雜度兩部分。

1. 時間複雜度:演算法執行所需要耗費的時間,時間越短,演算法越好,耗費的時間與演算法**中執行的數量有關等。

2. 空間複雜度:程式在計算機中執行所需要的消耗的空間記憶體。如:程式的儲存和執行所需要的儲存空間。

第二章:資料結構

2.1 1 什麼是資料結構

資料結構是資料的組織形式,表徵特定的物件資料。

2.12 資料結構的基本概念

資料:是資訊的載體

資料結構與演算法學習筆記(一)

資料 計算機操作的物件 資料元素 組成資料的基本基本單位 資料項 乙個資料元素可以由若干個資料項組成 資料物件 性質相同的資料元素的集合 資料結構 是相互之間存在一種或多種特定關係的資料元素的集合 資料型別 1.原子型別 不可以在分解的基本型別,包括整型,字元型 2.結構型別 由若干個型別組合而成 ...

資料結構與演算法學習筆記3

最好情況時間複雜度 最壞情況時間複雜度 平均情況時間複雜度 均攤時間複雜度 例 在乙個無序的陣列 array 中,查詢變數 x 出現的位置。如果沒有找到,就返回 1 n表示陣列array的長度 intfind int array,int n,int x return pos 時間複雜度 o n nn...

資料結構與演算法學習筆記4

一 陣列 array 是一種線性表資料結構。它用一組連續的記憶體空間,來儲存一組具有相同型別的資料。a i address base address i data type size 注 data type size 表示陣列中每個元素的大小 陣列和鍊錶的區別 鍊錶適合插入 刪除,時間複雜度 o 1...