日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

算法与数据结构_数据结构与算法专题--算法基本概念

發布時間:2024/8/1 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法与数据结构_数据结构与算法专题--算法基本概念 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

很多開發者都知道“程序=數據結構+算法”這個著名的公式,并不真正明白算法的定義或概念。究竟什么是算法呢?從字面意義上理解,算法即用于計算的方法,通過這種方法可以達到預期的計算結果。

1.算法的特征

有窮性:算法的指令或步驟的執行次數是有限的,執行時間也是有限的。確切性:算法的每一個指令或步驟都必須又明確的定義和描述。輸 入:一個算法應該又相應的輸入條件,用來刻畫運算對象的初始情況。輸 出:一個算法應該又明確的結果輸出。這是容易理解的,因為沒有得到結果的算法毫無意義。可行性:算法的執行步驟必須是可行的,且可以在有限時間內完成。

2.算法分類

1、按照應用來分類

按照算法的應用領域,即解決的問題,算法可以分為基本算法、數據結構相關的算法、幾何算法、圖論算法、規劃算法、數值算法、數值分析算法、加密/解密算法、排序算法、查找算法、并行算法和數論算法等。

2、按照確定性來分類

按照算法結果的確定性來分類,算法可以分為確定性算法和非確定性算法。

  • 確定性算法:這類算法在有限的時間內完成計算,得到的結果是唯一的,且經常取決于輸入值。
  • 非確定性算法:這類算法在有限的時間內完成計算,單是得到的結果往往不是唯一的,即存在多值性。

3、按照算法的思路來分類

按照算法的思路來分類,算法可以分為遞推算法、遞歸算法、窮舉算法、貪婪算法、分治算法、動態規劃算法和迭代算法等多種算法。

3.算法與數據結構的關系

數據結構是數據的組織形式,可以用來表征特定的對象數據。在計算機程序設置中,操作的對象是各式各樣的數據,這些數據往往擁有不同的數據結構,如數組、結構體、聯合、指針和鏈表等。因為不同的數據結構所采用的處理方法不同,計算的復雜度也不同,因材算法往往依賴于某種數據結構。也就是說,數據結構的算法實現的基礎。(程序=數據結構+算法)

4.算法的性能評價

一個算法的優劣往往通過算法復雜度來衡量,算法復雜度包括時間復雜度和空間復雜度兩個方面。

1、時間復雜度

時間復雜度即通常所說的算法執行所需要耗費的時間,時間越短,算法越好。一個算法執行的時間往往無法精確估計,通常需要在實際的計算機中運行才能夠知道。但是,也可以對算法的代碼進行估計,而得到算法的時間復雜度。

2、空間復雜度

空間復雜度是指算法程序在計算機中執行所消耗的存儲空間。空間復雜度可以分為如下兩個方面。

1)程序保存所需要的存儲空間,即程序大小。

2) 程序在執行中所需要小號的存儲空間資源,如程序在執行過程中的中間變量等。

一般來說,程序的大小越小,執行過程中消耗的資源越少,這對程序就越好。

總結

以上是生活随笔為你收集整理的算法与数据结构_数据结构与算法专题--算法基本概念的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。