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

2020-12-13 14:57

阅读:603

标签:排序   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 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


评论


亲,登录后才可以留言!