資料結構與演算法基礎(一)b 演算法和演算法分析

2021-10-09 09:56:37 字數 1632 閱讀 1526

@資料結構與演算法基礎(一)b 演算法和演算法分析

1.1 定義:

對特定問題**求解方法和步驟**的一種描述

**指令**的**有限序列** (指令表示乙個或多個操作)

1.2描述:

- 自然語言 : 英語 中文

- 流程圖 : 傳統框圖 ns流程圖

1.3 演算法與程式

演算法考慮如何從輸入轉換為輸出,乙個問題有多個演算法

程式 用某種語言對演算法具體實現

*程式= 資料結構+ 演算法

資料結構通過演算法實現操作

演算法根據資料結構設計程式*

1.4 演算法特性

- 有窮性

- 確定性 : 每條指令必須有確切的含義

- 可行性

- 輸入: 1個或0個輸入

- 輸出: 1個或多個輸出

1.5 演算法設計要求

- 正確性 :  不含語法錯誤/滿足典型,有刁難的資料

- 可讀性 : 便於人閱讀交流,其次才為了計算機執行

- 健壯性 : 非法資料,作出反應進行處理

- 高效性 : 盡量少的時間和盡量低的儲存需求

1.6 評價演算法

假設執行每條語句所需的時間均為單位時間

轉化為對演算法中所有語句的執行次數,即頻度之和

比較 數量級

- 空間效率 : 儲存空間

- 二者有時是矛盾的

1.6 演算法時間複雜度

定義:

演算法中基本語句重複執行次數是 問題規模n 的某個函式f(n)

演算法的時間量度記作 :

t(n) = o(f(n)) -----**最高次**

例:x=0;y=0;

for(int k=0;k時間複雜度是 由巢狀最深層語句的頻度決定的

注意: 有時,演算法中基本操作重複執行的次數還隨問題的輸入 資料集不同而不同

一般總考慮最壞的時間複雜度

3.1定義: 演算法所需存貯空間的度量

記作: s(n) = o(f(n))

3.2 例

資料結構與演算法 演算法基礎一

1 2 插入排序,在前k個元素有序的前提下插入arr k 將前面有序元素依次與arr k 比較 移動,3 最終將arr k 插入有序元素中的合適位置,形成k 1個有序元素4 5 org.junit.test 6public void testinsert 13 arr j temp 14 15 1 ...

資料結構與演算法基礎

電腦科學的研究物件是問題 解決問題的過程,以及通過該過程得到解決方案。演算法是具有有限步驟的過程,依照這個過程能解決問題。因此,演算法就是解決方案。電腦科學是研究問題及其解決方案,以及研究目前無解的問題的科學。可以簡答的認為電腦科學就是研究演算法的科學。抽象資料元素 沒有實際含義的資料元素,例如 a...

資料結構與演算法基礎

一 資料結構概述 資料結構的主要任務是通過分析資料物件的結構特徵,包括邏輯結構及資料物件之間的關係,然後把邏輯結構表示成計算機課實現的物理結構,從而便於計算機處理。概念術語 二 資料的邏輯結構與物理結構 邏輯結構 logical structure 是指在資料物件中資料元素之間的相互關係。資料元素之...