演算法理論的兩大論題:
演算法設計—對於乙個問題如何設計乙個有效的演算法
演算法分析—如何評價或判斷乙個演算法的優劣
問題的求解過程:
分析問題→設計演算法→編寫程式→整理結果
演算法(algorithm):對特定問題求解步驟的一種描述,是指令的有限序列。
演算法的五大特性:
⑴ 輸入:乙個演算法有零個或多個輸入。
⑵ 輸出:乙個演算法有乙個或多個輸出。
⑶ 有窮性:乙個演算法必須總是在執行有窮步之後結束,且每一步都在有窮時間內完成。
⑷ 確定性:演算法中的每一條指令必須有確切的含義,對於相同的輸入只能得到相同的輸出。
⑸ 可行性:演算法描述的操作可以通過已經實現的基本操作執行有限次來實現。
演算法的描述方法
⑴ 自然語言
⑵ 流程圖
⑶ 程式語言
⑷ 偽**——演算法語言
插入排序:o(n2)
氣泡排序:o(n2)
快速排序:o(n2)–o(nlogn)
堆排序:o(nlogn)
二分歸併排序:o(nlogn)
問題:有n個件物品要裝入揹包,第i 件物品的重量 wi, 價值vi,i=1,2,…,n. 揹包最多允許裝入的重量為b, 問如何選擇裝入揹包的物品,使得總價值達到最大?
問題的解:0-1向量
xi=1 <=> 物品 i 裝入揹包
問題:有n項任務, 任務 i 的加工時間為 ti , ti∈z+, i=1,2,…,n。用兩台相同的機器加工,從0時刻開始計時,完成時間是後停止加工機器的停機時間。問如何把這些任務分配到兩台機器上,使得完成時間達到最小?
例項:
任務集 s =
t1=3,t2=10,t3=6,t4=2,t5=1,t6=7
解:機器1的任務:1, 2, 4
機器2的任務:3, 5, 6
完成時間 : max=15
解: 0-1向量 , xi=1表示任務i分配到第一台機器,i =1,2,…,n。
不妨設機器1的加工時間<=機器2的加工時間,令t=t1+t2+…+tn,d=⌊t/2⌋ ,機器1的加工時間不超過d,且達到最大。
演算法分析與設計1 緒論
演算法理論的兩大論題 演算法設計 對於乙個問題如何設計乙個有效的演算法 演算法分析 如何評價或判斷乙個演算法的優劣 演算法的五大特性 輸入 乙個演算法有零個或多個輸入。輸出 乙個演算法有乙個或多個輸出。有窮性 乙個演算法必須總是在執行有窮步之後結束,且每一步都在有窮時間內完成。確定性 演算法中的每一...
1 1演算法緒論
借助某種工具,遵照一定規則,以明確而機械的形式進行。計算模型 計算機 資訊處理工具 所謂演算法,即特定計算模型下,旨在解決特定問題的指令序列。輸入 待處理的資訊 問題 輸出 經處理的資訊 答案 正確性 的卻可以解決指定的問題 確定選 任一演算法都可以描述為乙個由基本操作組成的序列 可行性 每一基本操...
2020 11 28 演算法 緒論
在鄭州大學綜合辦事大廳,每天陸陸續續有很多人來排隊辦事。現在你能否寫程式幫助老師時刻了解當前辦理業務的情況。輸入格式 第一行乙個數字n,表示排隊資訊或者查詢資訊條目的數量。以下n行,每行的內容有以下3種情況 1 in name 表示名字為name的人員新來到辦事大廳,排在隊伍的最後。in和name間...