[Java高级](三)时间复杂度计算
正值疫情,家中闭关,早起看新闻确诊人数已过万,不禁唏嘘,在此真切希望长风破浪会有时,直挂云帆济沧海。感激奋斗在一线的医护人员。 时间复杂度 1、概念 2、各时间复杂度介绍 2.1、O(1) 2.2、O(logn)、O(nlogn)对数阶时间复杂度 2.3、O(m+n)、O(m*n) 2.3.1加法法则 2.3.2 乘法法则 2.3.3 循环不仅与n有关,还与执行循环所满足的判断条件有关。 1、概念 时间复杂度是指 算法执行语句 执行的 次数 。 常见的时间复杂度有以下几种: 描述 时间复杂度 常数阶 O(1) 对数阶 O(logn) 线性阶 O(n) 线性对数阶 O(nlogn) 平方阶 O(n²) 立方阶 O(n³) n次方阶 O(mⁿ) 指数阶 O(2ⁿ) 常数阶 阶乘阶 2、各时间复杂度介绍 2.1、O(1) O(1) 是常量级时间复杂度的一种表示方法,并非只执行一行代码。 代码执行时间不是随着n的增大而增大,这样的代码的时间复杂度都是 O(1) 。 注意:通常只要算法中不存在循环、递归,即使代码有很多行,时间复杂度仍是 O(1) 。 2.2、O(logn)、O(nlogn)对数阶时间复杂度 int i = 1 ; while ( i <= n ) { i = i * 2 ; } 代码line3是执行次数最多的,只要算出第3行执行的次数,它 代表的就是整个代码的时间复杂度