當前位置:編程學習大全網 - 編程語言 - 計算機算法的特點是什麽?

計算機算法的特點是什麽?

計算機算法是可行的、有限的、輸入\輸出的和確定的。

計算機算法的特點

1.有貧窮。壹個算法應該包含有限的運算步驟,而不是無限的。事實上,“窮”往往意味著“在合理範圍內”。如果讓計算機執行壹個花了1000年才完成的算法,雖然很差,但超過了合理的極限,人們也不把它當成有效的算法。

2.確定性。算法中的每壹步都應該是明確的,不應該含糊不清。算法中的每壹步都不應該被解讀成不同的意思,而應該非常清晰。換句話說,算法的意義應該是唯壹的,不應該產生“歧義”。

3.有零個或多個輸入,所謂輸入是指在執行算法時需要從外界獲取必要的信息。

4.有壹個或多個輸出。算法的目的是求解,沒有輸出的算法是沒有意義的。

5.有效性。算法中的每壹步都要有效執行。並得到明確的結果。

:重要算法

A*搜索算法

俗稱A星算法。這是壹種在圖形平面上尋找具有多個節點的路徑的最低通過成本的算法。它常用於遊戲中的NPC或網絡遊戲中的BOT的移動計算。和Dijkstra算法壹樣,這個算法可以找到壹條最短路徑。也和BFS壹樣,進行啟發式搜索。

波束搜索

波束搜索法是壹種求解優化問題的啟發式方法。它是在分枝定界法的基礎上發展起來的。它采用啟發式方法估計k條最佳路徑,只從這k條路徑向下搜索,即只保留每層中滿意的節點,其他節點永久丟棄,與分枝定界法相比可以大大節省運行時間。波束搜索在20世紀70年代中期首次應用於人工智能領域,1976年,Lowerre在他的名為HARPY的語音識別系統中首次使用了波束搜索方法。他的目標是並行搜索幾個潛在的最優決策路徑,以減少回溯,快速得到壹個解。

二分搜索算法

在有序數組中查找特定元素的搜索算法。搜索過程從數組的中間元素開始,如果中間元素正好是要搜索的元素,則搜索過程結束;如果特定元素大於或小於中間元素,則在數組中大於或小於中間元素的那壹半中進行搜索,並從中間元素開始比較。這種搜索算法每次比較都將搜索範圍縮小壹半。

分支定界

分支定界算法是在問題的解空間樹中搜索問題的解的方法。但與回溯算法不同的是,分支定界算法采用廣度優先或最小代價優先的方法搜索解空間樹,在分支定界算法中,每個活節點只有壹次機會成為擴展節點。

數據壓縮

數據壓縮是通過減少存儲在計算機中的數據或通信中的數據的冗余來增加數據密度並最終減少數據存儲空間的技術。數據壓縮廣泛應用於文件存儲和分布式系統中。數據壓縮也代表了媒體容量大小的增加和網絡帶寬的擴大。

Diffie-Hellman密鑰協商

Diffie-Hellman密鑰交換(簡稱D–H)是壹種安全協議。它允許雙方通過不安全的通道建立密鑰,而不需要對方的任何先驗信息。該密鑰可用作對稱密鑰,以在後續通信中加密通信內容。

Dijkstra算法

Dijkstra算法是荷蘭計算機科學家Edsger Dijkstra發明的。該算法解決了有向圖中單個源點到其他頂點的最短路徑問題。例如,如果圖中的頂點表示城市,邊上的權重表示城市之間的行駛距離,則Dikoscher算法可用於查找兩個城市之間的最短路徑。

動態規劃

動態規劃是數學和計算機科學中用於解決具有重疊子問題的優化問題的方法。基本思想是將原問題分解成相似的子問題,在求解的過程中,通過子問題的求解得到原問題的解。動態規劃的思想是許多算法的基礎,並廣泛應用於計算機科學和工程。著名的應用實例包括:求解最短路徑問題、背包問題、項目管理、網絡流量優化等。這裏還有壹篇文章更詳細。

歐幾裏德算法

在數學中,傳遞除法又稱為歐幾裏德算法,是壹種求最大公約數的算法。相的劃分最早出現在歐幾裏得的《幾何原本》(第七卷,命題壹、命題二),而在中國則可以追溯到《九章算術》,出現在東漢時期。

最大期望算法

在統計計算中,最大期望(EM)算法是尋找概率模型中參數的最大似然估計的算法,其中概率模型依賴於壹個不可觀測的隱藏變量。最大期望常用於機器學習和計算機視覺的數據聚類領域。最大期望算法分兩步交替計算。第壹步計算期望(e),利用已有的估計值計算隱變量的最大似然估計值;第二步是最大化(m),最大化步驟e中得到的最大似然值來計算參數的值。在步驟m中找到的參數的估計值被用於下壹個步驟e的計算中,並且該過程交替進行。

快速傅立葉變換

快速傅立葉變換(FFT)是離散傅立葉變換的壹種快速算法,也可以用來計算離散傅立葉變換的逆。快速傅立葉變換有著廣泛的應用,如數字信號處理、計算大整數乘法、解偏微分方程等。

散列函數

HashFunction是壹種從任何類型的數據創建小型數字指紋的方法。這個函數對數據進行加擾,並重新創建壹個稱為哈希值的指紋。哈希值通常用於表示壹個由隨機字母和數字組成的短字符串。好的哈希函數在輸入域很少出現哈希沖突。在哈希表和數據處理中,不抑制沖突來區分數據會使數據庫記錄更難找到。

堆排序

Heapsort是指利用堆樹(heap)的數據結構設計的壹種排序算法。堆樹是壹種近似的完全二叉樹結構,它也滿足堆屬性:即子節點的鍵值或索引總是小於(或大於)其父節點。

合並分類

歸並排序是壹種基於歸並操作的有效排序算法。這個算法是分而治之的壹個非常典型的應用。

RANSAC算法

RANSAC是“RANdom SAmpleConsensus”的縮寫。該算法是由Fischler和Bolles在1981提出的壹種由壹組觀測數據估計數學模型參數的叠代方法。它是壹種非確定性算法,因為它只能以壹定的概率得到合理的結果,而且這個概率隨著叠代次數的增加而增加。該算法的基本假設是觀測數據集中存在“內點”(支持模型參數估計的那些點)和“離群點”(不符合模型的點),這組觀測數據受到噪聲的影響。RANSAC假設給定壹組“內聯者”數據,可以獲得最佳模型。

RSA加密算法

這是壹個公鑰加密算法,也是世界上第壹個適合簽名的算法。如今的RSA專利已經過期,在電商加密中被廣泛使用。大家都相信,只要密鑰足夠長,這個算法就會是安全的。

聯合搜索

並集是壹種樹狀數據結構,用於處理不相交集合的合並和查詢。它通常用森林來表示。

維特比算法

尋找最可能的隱藏狀態序列。

參考資料:

計算機化算法

  • 上一篇:對妳人生影響很大的壹件事是什麽?
  • 下一篇:FLASH #2002:Operation attempted on invalid socket
  • copyright 2024編程學習大全網