是什么alloc.h?关于SO的一些问题就像这样,这包括alloc.h.
但是,当我试图把它列入GCC给出错误的error: alloc.h: No such file or directory
这样的文件曾经存在过,或者这些问题只是错误地包含了它?
可能重复:
n&(n-1)这个表达式做什么?
考虑以下算法:
int count(int num)
{
int ones = 0;
while(num)
{
++ones;
num &= num - 1;
}
return ones;
}
Run Code Online (Sandbox Code Playgroud)
有什么意义num & (num-1)?它是如何工作的?
在这里给出的问题,我必须计算总数.使用插入排序对数组进行排序时所需的交换.
这是我的方法
#include <stdio.h>
int main()
{
int t, N, swaps, temp, i, j;
scanf("%d", &t);
while(t--){
scanf("%d", &N);
int arr[N];
swaps = 0;
for(i=0; i<N; ++i){
scanf("%d", &temp);
j=i;
while(j>0 && arr[j-1] > temp){
arr[j] = arr[j-1];
++swaps;
--j;
}
arr[j] = temp;
}
printf("%d\n", swaps);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是,这个soln超出了时间限制.
我怎样才能让它更快?
而且,这个问题的其他更好的解决方案是什么?