【学习】C/C++ 常用算法

1、复制数组内容

借用内存复制函数memcpy,整体赋值
void *memcpy(void *dst, void *src, zize_t size);
这个函数的功能是将src上,大小为size字节的数据赋值到dst上。
调用该寒素需要引用头文件 cstring

int arr1[5]={1,2,3,4,5};
int arr2[10]={0};
memcpy(arr2,arr1,sizeof(arr1));

2、 setprecision、fixed

setprecision:
头文件 iomanip

double s=20.7843000,
cout<<setprecision(1)<<s<<endl;会输出2e+001,因为要输出一个数字,所以只有2.
cout<<setprecision(2)<<s<<endl;会输出21。
cout<<setprecision(3)<<s<<endl;会输出20.8。
cout<<setprecision(6)<<s<<endl;会输出20.7843。
cout<<setprecision(7)<<s<<endl;会输出20.7843。
可见,小数部分末尾为0时,是输不出来的!

如果后面接着语句:
cout<<1<<endl;
cout<<1.00800<<endl;
第一条输出:1			不是浮点型。
第二条输出:1.008		承接setprecision(8)的这条规则语句。

setprecision与fixed:

比如:double s=20.7843909
如果直接:
cout<<fixed<<s<<endl;输出20.784391

配合加入setprecision:
cout<<fixed<<setprecision(1)<<s<<endl;就会输出2.8  。
cout<<fixed<<setprecision(2)<<s<<endl;会输出21.78。多个点!
cout<<fixed<<setprecision(3)<<s<<endl;会输出20.784。
cout<<fixed<<setprecision(6)<<s<<endl;会输出20.784391。
cout<<fixed<<setprecision(7)<<s<<endl;会输出20.7843909。
cout<<fixed<<setprecision(8)<<s<<endl;会输出20.78439090。

cout<<1<<endl;
cout<<1.008<<endl;
第一条输出:1
第二条为:1.00800000
承接了setprecision(8)这条规则语句,是浮点型的都会保留8个小数。是整型的还是整型!
有语句:
cout<<fixed<<setprecision(2)<<s<<endl;
A:cout<<setprecision(7)<<s<<endl;
B:cout<<setprecision(8)<<s<<endl;
就算后面的语句没有写<<fixed,同样会按有<<fixed处理。
AB语句均会按保留7个,8个小数处理,不会再按有7或8个浮点数处理。

3、定义一个宏函数,求x 的平方:

#define SQR(x) x*x

4、算法时间复杂度

  • O(log2n )
while (i<=n)
i=i*2; 
设频度是f(n), 则:2^f(n)<=n;f(n)<=log2n 
取最大值f(n)= log2n,
T(n)=O(log2n )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值