码迷,mamicode.com
首页 > 编程语言 > 详细

数据结构C++实现-第一章 绪论

时间:2019-09-23 11:54:16      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:排序   c++实现   code   计算   lin   log   count   signed   c++   

1.1 计算机与算法

1.1.3 起泡排序

void bubbleSort(int a[], int n)
{
    for(bool sorted=false; !sorted; --n) {
        sorted = true; // 每趟循环前都假定已经排序
        for(int i=1; i<n; ++i)
            if(a[i-1] > a[i]) { // 一旦相邻元素是逆序
                swap(a[i-1],a[i]);
                sorted = false; // 发现局部逆序,显然不是排序好的
            }
    }
}

1.3 复杂度分析

复杂度排名

1.3.1 常数O(1)

1.3.2 对数O( log(n) )

每执行一轮,n的大小都会成倍减小。对于对数的多次,即c循环里套的是对数循环,则 \(O(log^c(n))\) (c 为常数)
比如整数二进制展开中的位数1总数统计

int bitcount(unsigned int x)
{
    int n;
    for(n=0; x>0; x>>=1)
        n += (1&x);
    return n;    
}

数据结构C++实现-第一章 绪论

标签:排序   c++实现   code   计算   lin   log   count   signed   c++   

原文地址:https://www.cnblogs.com/wjundong/p/11571195.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!