第一章 演算法基礎 演算法效能分析

2021-09-28 14:41:46 字數 613 閱讀 1631

1.2 演算法效能分析

演算法複雜度是演算法效能最基本的評價標準,由時間複雜度和空間複雜度組成,屬於計算複雜性理論中的內容。複雜度是乙個演算法的時間執行函式,常用大寫「o」表示。

(1)時間複雜度:描述演算法的執行時間。

(2)空間複雜度:是指乙個演算法在執行過程中臨時占有的儲存空間大小,是演算法需要的額外資源的體系。

演算法的複雜度大約由6種,以時間複雜度為例:

1、o(1):表示常數級別完成問題的解,如在陣列中獲取索引為k的值。

2、o(lgn):一般採用分治法思想的演算法,根據一定的解題特徵對問題求解。

3、o(n):可以理解為將問題的資料進行了常數次迭代,如查詢無序陣列中的最大值。

4、o(nlgn):在資料的遍歷過程中又採用的分支法的思想,如歸併排序、快速排序。

5、o(n^2):表示對問題的資料進行了兩次巢狀式迭代,如插入排序。

6、o(n^3):表示對問題的資料進行了三次巢狀迭代。

除上述常見的複雜度外,還有一些演算法的複雜度比較高,需要用指數、階乘等方式表示。在遇到不同級別的複雜度合併是,取複雜度最高的即可。

在現實中,時間複雜度和空間複雜度是互斥的。相同功能的演算法中,優秀的演算法總是在時間複雜度和空間複雜度中使得二者得值均盡可能小。

演算法基礎第一章

不同常數時間的操作 加或定址運算或位運算 執行時間不一樣 選擇最小的數,放到陣列的第乙個位置 時間複雜度 c n c n 1 c n 2 c 1 o n 2 額外空間複雜度 o 1 兩兩比較並交換,直到無交換 時間複雜度 o n 2 額外空間複雜度 o 1 左邊序列有序,右邊新加入乙個數,從右往左找...

第一章 基礎演算法(一)

題目 給定乙個按照公升序排列的長度為n的整數陣列,以及 q 個查詢。對於每個查詢,返回乙個元素k的起始位置和終止位置 位置從0開始計數 如果陣列中不存在該元素,則返回 1 1 輸入格式 第一行包含整數n和q,表示陣列長度和詢問個數。第二行包含n個整數 均在1 10000範圍內 表示完整陣列。接下來q...

第一章 演算法基礎 排序演算法

1.5 排序演算法 1.5.1 快速排序 快速排序採用分治法的思想,首先把乙個數值串行分為兩個子串行,然後對兩個子串行再進行分治法的思想。計算過程如下 1 從熟知佇列中選擇乙個基準元素。2 將佇列中的其他元素與基準元素比較,比基準元素小的元素放在基準元素的左邊,比基準元素大的元素放在右邊 降序排列則...