算法与数据结构_数据结构与算法专题--算法基本概念
很多開發者都知道“程序=數據結構+算法”這個著名的公式,并不真正明白算法的定義或概念。究竟什么是算法呢?從字面意義上理解,算法即用于計算的方法,通過這種方法可以達到預期的計算結果。
1.算法的特征
有窮性:算法的指令或步驟的執行次數是有限的,執行時間也是有限的。確切性:算法的每一個指令或步驟都必須又明確的定義和描述。輸 入:一個算法應該又相應的輸入條件,用來刻畫運算對象的初始情況。輸 出:一個算法應該又明確的結果輸出。這是容易理解的,因為沒有得到結果的算法毫無意義。可行性:算法的執行步驟必須是可行的,且可以在有限時間內完成。2.算法分類
1、按照應用來分類
按照算法的應用領域,即解決的問題,算法可以分為基本算法、數據結構相關的算法、幾何算法、圖論算法、規劃算法、數值算法、數值分析算法、加密/解密算法、排序算法、查找算法、并行算法和數論算法等。
2、按照確定性來分類
按照算法結果的確定性來分類,算法可以分為確定性算法和非確定性算法。
- 確定性算法:這類算法在有限的時間內完成計算,得到的結果是唯一的,且經常取決于輸入值。
- 非確定性算法:這類算法在有限的時間內完成計算,單是得到的結果往往不是唯一的,即存在多值性。
3、按照算法的思路來分類
按照算法的思路來分類,算法可以分為遞推算法、遞歸算法、窮舉算法、貪婪算法、分治算法、動態規劃算法和迭代算法等多種算法。
3.算法與數據結構的關系
數據結構是數據的組織形式,可以用來表征特定的對象數據。在計算機程序設置中,操作的對象是各式各樣的數據,這些數據往往擁有不同的數據結構,如數組、結構體、聯合、指針和鏈表等。因為不同的數據結構所采用的處理方法不同,計算的復雜度也不同,因材算法往往依賴于某種數據結構。也就是說,數據結構的算法實現的基礎。(程序=數據結構+算法)
4.算法的性能評價
一個算法的優劣往往通過算法復雜度來衡量,算法復雜度包括時間復雜度和空間復雜度兩個方面。
1、時間復雜度
時間復雜度即通常所說的算法執行所需要耗費的時間,時間越短,算法越好。一個算法執行的時間往往無法精確估計,通常需要在實際的計算機中運行才能夠知道。但是,也可以對算法的代碼進行估計,而得到算法的時間復雜度。
2、空間復雜度
空間復雜度是指算法程序在計算機中執行所消耗的存儲空間。空間復雜度可以分為如下兩個方面。
1)程序保存所需要的存儲空間,即程序大小。
2) 程序在執行中所需要小號的存儲空間資源,如程序在執行過程中的中間變量等。
一般來說,程序的大小越小,執行過程中消耗的資源越少,這對程序就越好。
總結
以上是生活随笔為你收集整理的算法与数据结构_数据结构与算法专题--算法基本概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: V8 Promise源码全面解读
- 下一篇: 电脑剪贴板在哪里打开_这个小玩意让手机的