演算法基礎篇
第一章:演算法概述
首先了解一下基本的概念:
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...