![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法模板
UDK_KL.
这个作者很懒,什么都没留下…
展开
-
高精度——C++中大整数运算
大整数存储 工具: 使用STL中的vector容器(动态数组) 存储方式: 倒序存储——个位数存到数组第零位,如此以后进位或提升数字位数的时候会方便一些 cin>>a>>b; for(i=a.size()-1;i>=0;i--) { A.push_back(a[i]-'0'); //存储大整数 } for(i=b.size()-1;i>=0;i--) { B.push_back(b原创 2021-02-10 17:40:58 · 241 阅读 · 0 评论 -
求平方根——二分查找(浮点数)
#include<iostream> using namespace std; int main() { double n,l,r; double mid; cin>>n; l=0; r=n; while(r-l>1e-8) { mid = (l+r)/2; if(mid*mid>=n) r=mid; else l原创 2021-02-08 19:58:28 · 249 阅读 · 0 评论 -
二分查找(整数)模版
二分的本质 一段区间,定义一种性质使得区间被一分为二 二分查找即为寻找满足性质或不满足性质的区间的边界 模版选择 //区间被划分为[l,mid]和[mid+1,r] int bsearch_1(int l,int r) { while (l<r) { int mid = l+r >>1; if (check(mid)) r=mid; //check()判断mid是否满足某性质 else原创 2021-02-08 19:38:41 · 200 阅读 · 2 评论 -
归并排序模版
确定分界点mid=(l+r)/2 递归排序左右两部分 归并——将两部分合并 #include<iostream> using namespace std; int n; const int N =1e5 +10; int a[N]; int temp[N]; void merge_sort(int a[],int l,int r) { if(l>=r) return ; int mid = l+r >> 1; merge_s.原创 2021-02-07 12:29:04 · 62 阅读 · 0 评论 -
快速排序模板(C/C++)
确定分界点X: 直接取左边界q[l] 区中间值q[(l+r)/2] 取右边界 随机取 调整区间,使得第一个区间所有数都小于等于X,第二个区间所有数都大于等于X 递归处理左右两边 调整区间 a[],b[]原创 2021-02-07 12:00:08 · 136 阅读 · 0 评论