亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【九月打卡】第二天 時間復雜度計算

標簽:
算法

第一模块:课程介绍

课程名称:JavaScript版数据结构与算法 轻松解决前端算法面试
课程章节:2-1 时间复杂度计算
主讲老师:lewis

第二模块:课程内容

知道什么是时间复杂度,学会对时间复杂度进行计算。

第三模块:课程收获

1。时间复杂度是什么?

一个函数,用大O表示,比如O(1)、O(n)、O(logN)…

定性描述该算法的运行时间

定性说明不是描述具体多少秒,而且一个大概的时间趋势,也就是用上面说的那个函数来表示的。

下面的图片就列举了常见的时间复杂度

图片描述

几个时间复杂度的说明:

  1. O(1)

下面这个代码,只会执行一次,所以是O(1)

cost a = 0;
a = a + 1;
  1. O(n)

也就是常见的for循环

for(let i = 0; i < nums.length; i++){

}
  1. O(logN)

其实就是以2为底的函数,2的多少次方为null

let i = 1;
while(i < n){
	//O(1)的程序步骤
	i *= 2;
}

因为i每次在乘以2之后和n的差会变得更小,也就是说,在经过n次循环之后,i会大于n然后结束循环,也就是说2的i次方等于n,也就是n = long2n,所以这个循环的复杂度就是O(logN)

举个例子:

以前学的二分法查找

二分法查找一定有一种情况的时间复杂度为log n

因为在最好的情况下,二分法查找的时间复杂度为O(1)也就是一下子就找到了,最复杂的情况,就是O(logN),也就是最坏的情况

  1. 时间复杂度计算

加法:O(1) + O(n) = O(1)

代码示例:像下面的代码的时间复杂度还是O(1)

cost a = 0;
a = a + 1;
for(let i = 0; i < nums.length; i++){

}

乘法:O(n) * O(n) = O(n^2)

for(let i = 0; i < nums.length; i++){
    for(let j = i + 1; j < nums.length; j++){

    }
}

第四模块:课程记录

图片描述

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消