演算法第一篇之概念
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)
這裡說的空間複雜度實際中也是漸進空間複雜度。
相關文章
- 執行查詢 第一篇:基本概念
- 演算法基本概念演算法
- 機器學習之機器學習概念機器學習
- 演算法的基本概念演算法
- 演算法分析基本概念演算法
- 第一篇之認識大資料大資料
- 區塊鏈概念1:Hash演算法區塊鏈演算法
- RocketMQ基礎概念之BrokerMQ
- Java學習之介面概念Java
- ASM之ASM相關概念ASM
- Flink入門-第一篇:Flink基礎概念以及競品對比
- 資料探勘與分析 概念與演算法演算法
- RabbitMQ 入門之基礎概念MQ
- 【Elasticsearch學習】之基礎概念Elasticsearch
- 物件導向之_繼承概念物件繼承
- 思考工具之概念對映 | Untools
- 流媒體技術之概念
- jQuery 原始碼分析第一篇之入口原始碼jQuery原始碼
- 資料結構與演算法 基礎概念資料結構演算法
- HTTPS中的加密演算法相關概念HTTP加密演算法
- 並查集的概念與演算法實現並查集演算法
- 機器學習演算法基礎概念學習總結機器學習演算法
- JAVA後端面試100 Q&A之第一篇Java後端面試
- 效能測試之 JVM 概念認識JVM
- Java之Spring Cloud概念介紹JavaSpringCloud
- 繫結變數之基本概念變數
- mysql基礎概念之socket檔案MySql
- [演算法之回溯演算法]演算法
- 資料結構與演算法(1)- 基礎概念資料結構演算法
- 運動目標檢測演算法相關概念演算法
- 騰訊效能監控框架Matrix原始碼分析之第一篇框架原始碼
- Kinect For Windows2.0開發第一篇之搭建環境Windows
- 玩轉webpack系列之webpack核心概念(一)Web
- Volatile之Java記憶體模型概念Java記憶體模型
- 【TUNE_ORACLE】Oracle Hint之概念與用法Oracle
- spring概念理解之IOC(控制反轉)Spring
- CSS 核心概念歸納之定位和 BFCCSS
- SOA之(1)——SOA架構基礎概念架構