标签:排序 c++实现 code 计算 lin log count signed c++
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; // 发现局部逆序,显然不是排序好的
}
}
}
复杂度排名
每执行一轮,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++实现 code 计算 lin log count signed c++
原文地址:https://www.cnblogs.com/wjundong/p/11571195.html