Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10465
  • 博文数量: 8
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 86
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-11 13:55
文章分类

全部博文(8)

文章存档

2015年(1)

2014年(7)

我的朋友
最近访客

分类: 其他平台

2014-04-07 10:39:24

    算法执行的时间和算法中的语句执行的次数成正比例,算法中语句的执行次数的频度称为语句频度或时间频度,记为T(n),n为问题的规模。若某个辅助函数f(n)使得当n趋近于无穷大时T(n)/f(n)为一个不等于0的常数,则称f(n)为T(n)的同数量级函数,记作T(n)=O(f(n)), 称O(f(n))为算法的渐进时间复杂度,简称为时间复杂度。

    算法中如果语句执行次数为一个常数,则时间复杂度为O(1)。时间频度不同,而时间复杂度有可能相同,如T(n) = n^2 + 2n + 1 和 T(n) = 3n^2 + 4, 它们的时间复杂度都为O(n^2)。常见的时间复杂度有:常数阶O(1), 对数阶O(log2n),线性阶O(n),平方阶O(n^2),k次方阶O(n^k)....  指数阶O(2^n)。

    冒泡排序的时间复杂度为O(n^2),
public static void bubbleSort(List list) {
    if (list == null || list.size() ==0 || list.size() == 1) {
        return;
    }
    int size = list.size();
    int temp = -1;
   for (int i = 0; i < size -1; i ++) {
        for(int j = 0; j < size - i - i; j ++) {
               if (list.get(j) > list.get(j + 1) {
                    temp = list.get(i);
                    list.set(i, list.get(j));
                    list.set(j, temp);
               }
        }    
    }
}
  
阅读(232) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~