演算法(algorithm)是指解題方****而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制,簡單來說就是解決問題的步驟
演算法特徵:有窮性、確切性、輸入項、輸出項、可行性
特徵
含義有窮性
演算法在執行有限個步驟之後終止
確切性演算法的每一步必須有確切的定義
輸入項乙個演算法有0個或多個輸入
輸出項要有乙個或多個輸出
可行性每個計算步驟都可以在有限時間內完成
主要由空間複雜度和時間複雜度衡量
查詢演算法:1、
//執行了1次
2、for
(i =
1; i <= n; i++
)//執行了n次
3、for
(j =
1; j <= n; j++
)for
(j =
1; j <= n; j++
)//執行了n^2次
當問題擴大為n倍,時間複雜度分別為o(1
),o(n),o
(n^2
)
排序演算法://給定有序查詢表array 二分查詢給定的值data
//查詢成功返回下標 查詢失敗返回-1
//二分查詢的時間複雜度為o(logn)
function
search
(array,data)
else
if(data < array[mid]
)else
}return-1
;}
//最佳執行時,時間複雜度為o(n),最壞為o(n^2)
public
funbubblesort
(array)}}
}
//時間複雜度o(n^2)
public
funselectionsort
(array)
}// 將最小值放在最前面
if(mink != i)
}}
//最佳:o(n),最壞:o(n^2)
public
fundinsertsort
(array)
array[j +1]
= temp;
}}
遞迴:函式或者方法呼叫自己本身。構成遞迴的條件:明確的遞迴終止條件,給出遞迴終止時處理,提取重複的邏輯.
//階乘
function
f(n)
}
使用遞迴,因為函式呼叫的開銷,如果遞迴深度太大時,往往導致棧溢位。可以使用循壞代替或者尾遞迴
假設你正在爬樓梯。需要 n 階你才能到達樓頂。function
f(n, r=1)
function
f(n)
return n;
}
每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?
function
climb
(n)else
if(n==1)
else
if(n==2)
else
if(n>2)
}
WS BPEL語言基礎(上)
16.1.ws bpel語言基礎 在我們能夠設計編排層之前,我們需要很好地理解如何正式地表達流程的操作特徵。本書使用ws bpel語言來演示流程邏輯如何能夠被作為具體定義的一部分來描述 圖16.1 從而能夠通過相適應的編排引擎來實現和執行。圖16.1.常見的ws bpel流程定義結構 雖然你很可能會...
軟體測試基礎 上
1 軟體的生命週期 需求 設計 編碼 測試 維護 公升級 廢棄 2 軟體測試的流程 需求分析 需求評審 測試計畫 測試用例 用例評審 搭建測試環境 測試執行 回歸測試 測試報告 3 軟體測試的經典定義 在規定的條件下對程式進行操作,以發現錯誤,對軟體的質量進行評估 4 軟體測試的範圍 是對軟體形成中...
CAN匯流排基礎(上)
can匯流排 controller area network,控制器區域網路 由德國博世公司於上世紀80年代提出,近20年來,隨著can匯流排在工業測控與汽車領域的普及,can網路技術不斷優化,取得了長足發展。如今can匯流排已經成為了汽車上不可或缺的重要環節,ecu內部的can匯流排開發也佔到了e...