算法本質

因爲時間少,所以用簡單的語言。

算法有三個特徵,(1)算法複雜度。實際是程序有幾個循環,主循環中有幾個內層循環。算法複雜度與具體數據結構,循環用到的元素數量,所有操作的個數有關。傳統上,算法的操作可認爲是函數的個數。(2)循環的工作原理。循環的作用是什麼。例如,動態規劃矩陣鏈乘法<A1,A2,...,An>的第一層循環有兩個,主循環有三層。主循環的第一層循環有l=2,3,...,n個子矩陣鏈長度,子問題的長度。第二層循環i=1,....,n-l+1是子矩陣鏈的開始位置,結束位置j=i+l-1。第三層循環k=i,i+1,...,j-1是子矩陣鏈的分割點。迭代的次數可稱爲循環步。主循環的第一個循環步對i=1,....,n-1計算所有長度爲2的子矩陣鏈的標量乘法次數M[i,i+1],第二個循環步計算所有長度爲3的子矩陣鏈的乘法次數M[i,i+2]。注意循環的終止和保持條件。(3)算法對程序數據的操作功能。圖的搜索算法對數據的操作有三個功能,算法對圖的數據建立元素分組的索引結構並且保存到隊列,元素在隊列中搜索並且出隊創建輸出線性序列,將搜索的出隊元素在數據結構中索引的元素保存到隊列。

        算法的分析有算法複雜度分析,攤還分析和新的方法。攤還分析又稱爲平攤分析,是對所有操作對所有元素時間代價的分析,從數據庫存儲和搜索發現,能改進數據結構的存儲效率,發現了新的數據結構伸展樹等。新的分析方法是程序功能結構分析。

     算法有數據結構上的算法,樹和圖的遍歷算法(線性算法),矩陣計算(輔助數組的並行計算),圖的兩點間最短距離(子集合與路徑選擇),排序(過程結構,堆排序快速排序的二叉排序樹)。算法在非數據結構上的方法是數據組織技術,動態規劃的數據分組有開始位置和結束位置與長度兩個特徵,最長不連續公共子序列是子序列連接問題,建立一條最長子序列的格路。貪心法是一種解決問題的方法,又稱爲無損失最佳策略,是元素子集合的最佳選擇問題。

      數據組織技術有數據分組,子序列連接(格路問題),子集合選擇(擬陣)。數據分組遵循算法的程序數據文法。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章