l演算法設計的要求
1.正確性(
correctness)2.
可讀性(
readablity)3.
健壯性(
robustness)4.
高時間效率與低儲存量需求
l演算法時間效率的度量
1.演算法時間效率度量的基本做法
在演算法中選取一種對於所研究問題來說是基本操作的原操作,以該基本操作重複執行的次數作為演算法的時間度量。一般而言,這個基本操作是最深層迴圈內的語句中的原操作。
2.演算法語句頻度與時間複雜度的關係
一般演算法消耗的實際時間為演算法中每條語句頻度之和,是
n的函式
t(n)。當n
趨於無窮大時,
t(n)
的同階無窮小即是演算法的時間複雜度,記為
t(n)=o (f (n))
。例如:
for (i=1; i<=n; ++i)-------------------------- n+1
for (j=1;j<=n; ++j)--------------------- n×(n+1)
總時間消耗:
t(n)= 2n3+3n2+2n+1
時間複雜度:
t(n)=o(n3)
l演算法儲存空間的度量
1.演算法儲存空間度量的基本做法
用程式執行中需要的輔助空間的消耗作為儲存空間度量的依據,是問題規模
n的函式。而程式執行中本身需要的工作單元不能算。
2.演算法空間複雜度
s(n)=o (f(n))
稱為演算法的空間複雜度。
演算法分析與設計學習筆記1
下面哪一個不是演算法的特性?同一個數學模型使用不同的資料結構會有不同的演算法,有效性有很大差別 計算此偽 表示的演算法中加法的執行次數 答案 2t 1 1 解析 此類問題適合初學者進行練習,初學者接觸此類問題最好找從頭到尾梳理一遍,將題中所給資料帶入所給偽 中進行計算來梳理思路。運算過程 n最開始為...
演算法設計與分析課堂筆記(1)現代優化演算法
工程領域記憶體在大量的優化問題,這些優化問題難以求解的原因 搜尋空間的可能解數目太多以至於無法採用窮舉搜尋法尋找最優解 簡化模型得到的結果往往是沒有實際意義的 脫離眾多現實因素 階被嚴格限制,以至於找到一個可行解都很難,遑論最優解 很多時候採用自然界最樸素的策略來應對這些問題,反而能夠得到不錯的結果...
knn演算法的筆記1
機器學習實戰的knn def classify0 inx,dataset,labels,k datasetsize dataset.shape 0 diffmat tile inx,datasetsize,1 dataset sqdiffmat diffmat 2 sqdistances sqdif...
泛型演算法的設計 1
泛型演算法的設計 1 前言 泛型演算法獨立於操作的容器且與要操作的元素型別無關,達到了函式彈性設計的最大化,下面我們一步步的實現一個泛型演算法 1.有一天,老闆交給你一個任務,要你程式設計完成如下工作,給定一個儲存整數的vector,及一個整數,如果此值存在於vector內,我們必須返回一個指標指向...
演算法設計與分析基礎讀書筆記1
1.演算法 是一系列解決問題的明確指令,也就是說對於符合一定規範的輸入,能夠在有限的時間內獲得要求的輸出 2.演算法要點 1 演算法的每個步驟都必須沒有歧義,不能有半點含糊 2 必須認真確定演算法所處理的輸入的值域 3 同一演算法可以用幾種不同的形式來描述 4 同一問題,可能存在幾種不同的演算法 5...