演算法理論的兩大論題:
演算法設計—對於乙個問題如何設計乙個有效的演算法
演算法分析—如何評價或判斷乙個演算法的優劣
演算法的五大特性:
輸入:乙個演算法有零個或多個輸入。
輸出:乙個演算法有乙個或多個輸出。
有窮性:乙個演算法必須總是在執行有窮步之後結束,且每一步都在有窮時間內完成。
確定性:演算法中的每一條指令必須有確切的含義,對於相同的輸入只能得到相同的輸出。
可行性:演算法描述的操作可以通過已經實現的基本操作執行有限次來實現。
問題的求解過程:
演算法的描述方法
自然語言
流程圖程式語言
偽**——演算法語言
演算法分析
演算法分析(algorithm analysis):對演算法所需要的兩種計算機資源——時間和空間進行估算
時間複雜性(time complexity)
空間複雜性(space complexity)
演算法分析的目的:
設計演算法——設計出複雜性盡可能低的演算法
選擇演算法——在多種演算法中選擇其中複雜性最低者
演算法設計與分析 1
實驗題目 生成兩個隨機的圖,乙個有向圖乙個無向圖。有向圖兩千條邊左右,無向圖一千條邊左右,邊的數量是大概的。100個頂點。要求能算出每個頂點的度。要求每次圖是隨機生成的,並且有良好的結構。今後的實驗都基於這個圖結構。任意語言和環境。建議鍊錶描述。然後基於這個圖實現乙個廣度優先搜尋。參考文獻 c 中的...
演算法1 緒論
演算法理論的兩大論題 演算法設計 對於乙個問題如何設計乙個有效的演算法 演算法分析 如何評價或判斷乙個演算法的優劣 問題的求解過程 分析問題 設計演算法 編寫程式 整理結果 演算法 algorithm 對特定問題求解步驟的一種描述,是指令的有限序列。演算法的五大特性 輸入 乙個演算法有零個或多個輸入...
演算法設計與分析作業(1)
1.dijkstra求單源最短路徑 先進行存圖操作,將帶權有向圖用鄰接矩陣來表示 for int i 0 i u v dist map u v dist 用dis陣列來儲存0點到其他每乙個點的最短距離,初始時dis i map 0 i 接下來進行鬆弛操作,找出最短距離 首先0點為q集合中的點,0 1...