時間復雜度

分析一個時間的復雜度,推導大O的階

 1.用常數(shù)1取代運行時間中的所有加法常數(shù)
 2.在修改后的運行次數(shù)的函數(shù)中,只保存最高階項
 3.如果最高階項存在且不是1 ,則去除與這個項相乘的常數(shù)
 4.得到的最后結果就是大O階

判斷這個的時間復雜度

     int  i = 0 , n =  100;
     while(i < n){
      i = i *2;
}

由于2^x = n 得到 x = log(2)n ,所以這個循環(huán)的時間復雜度為O(logn).

  int i, j ;
  for(i = 0; i < n ; i++){
      function(1);
}
void function( int count){
    printf("%d", count);
}

函數(shù)體打印的這個參數(shù),function 函數(shù)的時間復雜度是O(1) ,所以整體的時間復雜度就是O(n)

 void function(int count){
      int j ;
    for(j =count; j < n ; j++){
    printf("%d",j);
  }
}

function 的內部循環(huán)次數(shù)隨count的增加(接近n)而減少, 算法的時間復雜度為O(n^2)

 n++;
 function(n);
for(i =0; i < n; i++){
    function(i);
}
for(i = 0; i < n ; i++){
    for( j = i; j < n; j++){
  printf("%d",j);
}
}
 void function(int count){
      int j ;
    for(j =count; j < n ; j++){
    printf("%d",j);
  }
}
例子 時間復雜度 術語
521314 O(1) 常數(shù)階
3n+4 O(n) 線性階
3n^2+4n+5 O(n^2) 平方階
3log(2)n+4 O(logn) 對數(shù)階
2n+3log(2)n+14 O(nlogn) nlogn階
n3+2n2+4n+6 O(n^3) 立方階
2^2 O(2^n) 指數(shù)階

常用的時間復雜度耗費的時間從小到大是
O(1) < O(logn)<(n) <O(nlogn) < O(n^2) < O(n^3) <O(2^n)<O(n!)<O(n*n)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 聲明:該文章中內容為《大話數(shù)據(jù)機構》一書中的內容 1 函數(shù)的漸近增長 我們現(xiàn)在來判斷一下,兩個算法A和B哪個更好。...
    mm_cuckoo閱讀 1,457評論 0 13
  • 算法復雜度 時間復雜度 空間復雜度 什么是時間復雜度 算法執(zhí)行時間需通過依據(jù)該算法編制的程序在計算機上運行時所消耗...
    KODIE閱讀 3,400評論 0 9
  • 0,時間復雜度是指執(zhí)行算法所需要的計算工作量 1,在計算時間復雜度的時候,先找出算法的基本操作,然后根據(jù)相應的各語...
    Santiagogogo閱讀 946評論 0 4
  • 1. 算法復雜度初認 你循環(huán)的次數(shù)寫成 n 的表達式,就是時間復雜度 你申請的變量數(shù)量寫成 n 的表達式,就是空間...
    誰動了MyWorld閱讀 4,252評論 0 11
  • 紅眼醉于酒綠 花光所有力氣擠出高興 全城都為我的分手布景 傳說中 傾城的眼淚最癡情 浮世繁影也不過如此 華燈謝了 ...
    好奇是病閱讀 217評論 3 1

友情鏈接更多精彩內容