1、演算法設計要求
正確性、可讀性、健壯性(當輸入資料不合法時,演算法也能做出相關處理,而不是產生異常或莫名其妙的結果)、時間效率高和儲存量低
2、演算法效率的度量方法
推導大o階方法:
①用常數1取代執行時間中的所有加法常數
②在修改後的執行次數函式中,只保留最高端項
③如果最高端項存在且不是1,則去除與這個項相乘的常數。
//例子1:常數階
int sum =
0,n=
100;
//執行一次
sum =(1
+n)*n/2;
//執行一次
printf
("%d"
,sum)
;//執行一次
//函式執行次數:f(n) = 1+1+1(這裡是+所以o(f(n))為o(1))
//例子2:線性階
int i;
for(i=
0;i)//迴圈時間複雜度為o(n)
//例子3:對數階
int count =1;
while
(count < n)
//迴圈時間複雜度:o(logn)
//例子4:平方階
int i,j;
for(i=
0;i//時間複雜度:o(n^2)
//若乙個程式執行次數為:
//f(n) = 1+n+n^2+n(n+1)/2 = 3*n^2/2 + 3*n/2 +1;①、②
//根據dao階的方法時間複雜度為o(n^2)
知識星球 預備知識
1.tenorflow 安裝 參考 tensorflow安裝教程 tensorflow 安裝教程 tensorflownews 2.tensrflow基礎 關注圖 會話 tensor 變數 feed和fetch。使用圖 graphs 來表示計算任務 在被稱之為會話 session 的上下文 cont...
Python預備知識
02 執行python程式 2.3.3 python 的 ide pycharm 03 配置pycharm 3.1.2 安裝和啟動步驟 3.1.3 設定專業版啟 標 3.1.4 解除安裝之前版本的 pycharm 3.2 匯入配置資訊 3.3 開啟乙個 python 專案 3.4 新建乙個專案 3....
C 預備知識
一 學前基礎 學習c 最好有一定的c語言基礎,當然也可以直接學習c 但是難度肯定不一樣。建議先粗略了解c語言的語法結構等基礎概念知識,在進行系統化的學習c 二 c和c 的區別 c 在c的基礎上新增了對物件導向程式設計和泛型程式設計的支援,所以c 是c語言的超集,是c語言的擴充版本,意味著任何有效的c...