最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 數(shù)據(jù)結(jié)構(gòu)與算法系列精講之時間復(fù)雜度與空間復(fù)雜度

 更新時間:2022年02月18日 10:40:16   作者:我是小白呀  
對于一個算法,其時間復(fù)雜度和空間復(fù)雜度往往是相互影響的,當追求一個較好的時間復(fù)雜度時,可能會使空間復(fù)雜度的性能變差,即可能導(dǎo)致占用較多的存儲空間,這篇文章主要給大家介紹了關(guān)于Java時間復(fù)雜度、空間復(fù)雜度的相關(guān)資料,需要的朋友可以參考下

概述

從今天開始, 小白我將帶大家開啟 Jave 數(shù)據(jù)結(jié)構(gòu) & 算法的新篇章.

算法的衡量標準

當我們需要衡量一個算法的的優(yōu)越性, 通常會使用時間復(fù)雜度 (Time Complexity) 和空間復(fù)雜度 (Space Complexity) 來衡量.

時間復(fù)雜度

時間復(fù)雜度 (Time Complexity) 通常用 O(n) 表示, 用來描述一個算法運行的時間.

時間復(fù)雜度 & 空間復(fù)雜度計算規(guī)則:

  • 用常數(shù) 1 代替運行中的所有加減, lim n->∞cn = ∞
  • 只保留最高項, lim n->∞ n^2 + an + b = lim n->∞ n^2

最優(yōu)時間復(fù)雜度

最優(yōu)時間復(fù)雜度指的是在最優(yōu)的情況下算法需要的運行時間.

平均時間復(fù)雜度

平均時間復(fù)雜度是指所有可能的輸入實例以等概率出現(xiàn)的情況下, 算法需要的運行時間.

最壞時間復(fù)雜度

最壞時間復(fù)雜度指的是在最壞的情況下算法需要的運行時間. 一般使用最壞時間復(fù)雜度作為時間復(fù)雜度.

O(1)

沒有循環(huán)結(jié)構(gòu), 只有普通加減的代碼時間復(fù)雜度為 O(1).

例如:

int i = 1;
int j = 2;
int k = i + j;  // 1+2=3

O(n)

循環(huán) n 次的代碼的時間復(fù)雜度為 O(n).

例子:

int sum = 0;
for (int i = 1; i < n; i++) {
    sum += i;
}

O(n^2)

兩層循環(huán)嵌套的時間復(fù)雜度為 O(n^2). 如下例子, 需要進行 2n^2 次計算

例子:

int sum = 0;

for (int i = 1; i < n; i++) {
    for (int j = 0; j < n; j++) {
        sum += i;
        sum += j;
    }
}

O(logN)

2^n = N, 所以會循環(huán) logN 次.

例子:

int sum = 0;

for (int i = 0; i < n; i++) {
    sum += i;
    i *= 2;
}

空間復(fù)雜度

空間復(fù)雜度 (Space Complexity) 定義為該算法所耗費的存儲空間.

O(1)

如果算法執(zhí)行所需要的臨時空間不會隨著變量的大小而變化, 那么空間復(fù)雜度就為 O(1).

例子:

int i = 1;
int j = 2;
int k = i + j;  // 1+2=3

O(n)

長度為 n 的數(shù)組占用空間為 O(n).

例子:

int[] array = new int[n]

到此這篇關(guān)于Java 數(shù)據(jù)結(jié)構(gòu)與算法系列精講之時間復(fù)雜度與空間復(fù)雜度的文章就介紹到這了,更多相關(guān)Java 時間復(fù)雜度內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • elasticsearch+logstash并使用java代碼實現(xiàn)日志檢索

    elasticsearch+logstash并使用java代碼實現(xiàn)日志檢索

    這篇文章主要介紹了elasticsearch+logstash并使用java代碼實現(xiàn)日志檢索,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • java后臺批量下載文件并壓縮成zip下載的方法

    java后臺批量下載文件并壓縮成zip下載的方法

    這篇文章主要為大家詳細介紹了java后臺批量下載文件并壓縮成zip下載的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Java開發(fā)實現(xiàn)猜拳游戲

    Java開發(fā)實現(xiàn)猜拳游戲

    這篇文章主要為大家詳細介紹了Java實現(xiàn)猜拳游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • Java多線程之線程池七個參數(shù)詳解

    Java多線程之線程池七個參數(shù)詳解

    這篇文章主要介紹了Java多線程之線程池七個參數(shù)詳解,文中有很詳細的代碼示例,對正在學習java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-04-04
  • 基于jvm java內(nèi)存區(qū)域的介紹

    基于jvm java內(nèi)存區(qū)域的介紹

    下面小編就為大家?guī)硪黄趈vm java內(nèi)存區(qū)域的介紹。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • gradle安裝和環(huán)境配置全過程

    gradle安裝和環(huán)境配置全過程

    本文介紹了如何安裝和配置Gradle環(huán)境,包括下載Gradle、配置環(huán)境變量、測試Gradle以及在IntelliJ IDEA中配置Gradle
    2025-01-01
  • synchronized背后的monitor鎖實現(xiàn)詳解

    synchronized背后的monitor鎖實現(xiàn)詳解

    這篇文章主要為大家介紹了synchronized背后的monitor鎖實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • Java Swing 多線程加載圖片(保證順序一致)

    Java Swing 多線程加載圖片(保證順序一致)

    這篇文章主要為大家詳細介紹了Java Swing 多線程加載圖片,保證順序一致,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • java.util.ArrayDeque類使用方法詳解

    java.util.ArrayDeque類使用方法詳解

    這篇文章主要介紹了java.util.ArrayDeque類使用方法,java.util.ArrayDeque類提供了可調(diào)整大小的陣列,并實現(xiàn)了Deque接口,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Java中的EnumMap集合解析

    Java中的EnumMap集合解析

    這篇文章主要介紹了Java中的EnumMap集合解析,EnumMap是Map接口的一種實現(xiàn),專門用于枚舉類型的鍵,所有枚舉的鍵必須來自同一個枚舉,
    EnumMap不允許鍵為空,允許值為空,需要的朋友可以參考下
    2023-09-09

最新評論

即墨市| 湾仔区| 望奎县| 澄迈县| 龙井市| 九江市| 清流县| 松滋市| 鄢陵县| 汪清县| 桦甸市| 斗六市| 沧州市| 桐梓县| 陆河县| 太和县| 西盟| 富宁县| 广南县| 日照市| 柘城县| 襄垣县| 雅江县| 屯昌县| 鸡东县| 嵩明县| 农安县| 长宁县| 衡东县| 敖汉旗| 五家渠市| 康乐县| 漳浦县| 大姚县| 寻乌县| 西宁市| 宿松县| 深水埗区| 孟州市| 华池县| 鸡西市|