演算法1 緒論

2021-10-05 22:39:31 字數 1143 閱讀 2165

演算法理論的兩大論題:

演算法設計—對於乙個問題如何設計乙個有效的演算法

演算法分析—如何評價或判斷乙個演算法的優劣

問題的求解過程:

分析問題→設計演算法→編寫程式→整理結果

演算法(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間...