演算法第一篇之概念
1. 演算法是什麼
演算法:一種計算的方法,在程式設計上,表現為一組指令序列。
輸入->演算法->輸出
2. 如何評價演算法
對於程式設計而言,無非就是兩個方面:演算法有多快?(時間效率);記憶體耗得多不多?(空間效率)
演算法的複雜度分析,包括上述兩個方面,各自稱為時間複雜度分析和空間複雜度分析。通常我們更關注的是演算法的時間複雜度。
設問題規模為n,即輸入資料的大小,時間複雜度記為T(n)
比如n個輸入資料,需要做2*n個基本運算,那麼T(n) = 2*n
漸進時間複雜度
比如: T(n) = 2*n 則O(n)=n, 實際中就稱演算法時間複雜度為n
T(n)= 3*n2 則O(n)=n2, 實際中就稱演算法時間複雜度為n2
T(n) =3* log(n)則O(n)=log(n), 實際中就稱演算法時間複雜度為log(n)
空間複雜度分析
分析演算法執行過程中所佔用儲存空間大小,其分析和時間複雜度類似。
如果使用1個基本空間單位,則空間複雜度為O(1)
如果使用n個基本空間單位,則空間複雜度為O(n)
這裡說的空間複雜度實際中也是漸進空間複雜度。
相關文章
- 執行查詢 第一篇:基本概念
- 演算法基本概念演算法
- 演算法分析基本概念演算法
- 演算法的基本概念演算法
- Flink入門-第一篇:Flink基礎概念以及競品對比
- 【新年第一篇金融科技】徵信報告揭祕50問之第一篇
- 區塊鏈概念1:Hash演算法區塊鏈演算法
- RocketMQ基礎概念之BrokerMQ
- DDD之2領域概念
- Kubernetes基本概念之Label
- 資料探勘與分析 概念與演算法演算法
- RabbitMQ 入門之基礎概念MQ
- 【Elasticsearch學習】之基礎概念Elasticsearch
- Java之Spring Cloud概念介紹JavaSpringCloud
- 物件導向之_繼承概念物件繼承
- 思考工具之概念對映 | Untools
- JAVA後端面試100 Q&A之第一篇Java後端面試
- 並查集的概念與演算法實現並查集演算法
- 資料結構與演算法 基礎概念資料結構演算法
- Volatile之Java記憶體模型概念Java記憶體模型
- 效能測試之 JVM 概念認識JVM
- 資料結構與演算法(1)- 基礎概念資料結構演算法
- spring之AOP的概念及簡單案例Spring
- pcm5102晶片解析之基本概念晶片
- 玩轉webpack系列之webpack核心概念(一)Web
- 【TUNE_ORACLE】Oracle Hint之概念與用法Oracle
- 第一篇
- 演算法之KMP演算法KMP
- 騰訊效能監控框架Matrix原始碼分析之第一篇框架原始碼
- 常用演算法之貪心演算法演算法
- 演算法那些事之冒泡演算法演算法
- 基礎演算法之排序演算法演算法排序
- 最短路演算法之:Dijkstra 演算法演算法
- 最短路演算法之:floyd 演算法演算法
- flutter概念介紹之 Widget - State- BuildContext - InheritedWidgetFlutterUIContext
- 【ASK_ORACLE】Row Cache Enqueue鎖之概念篇OracleENQ
- js之閉包(概念、優缺點、應用)JS
- 三刷紅寶書之 JavaScript 基本概念JavaScript
- CSS基礎概念記錄之元素型別CSS型別