算法基础
小新的博客.
具体事情反映人生质地。
展开
-
二分解题模板
整数二分的本质:边界:找到一个性质可以将区间一分为二,一半满足性质,一边不满足性质 本质并不是单调性 有单调性的话一定可以二分,没有单调性也有可能是二分 1.找中间值 mid=l+r>>2; ...原创 2020-11-04 10:59:39 · 150 阅读 · 0 评论 -
快速排序模板
void quick_sort(int q[],int l,int r){ if(l>=r) return; int x=q[l+r>>1],i=l-1,j=r+1; while(i<j){ do i++; while(q[i]<x); do j--; while(q[j]>x); if(i<j) swap(q[i],q[j]); } quick_sort(q,l,j); quick_sort(q,j+1,r);..原创 2020-11-01 19:35:14 · 122 阅读 · 0 评论 -
归并排序模板
归并排序:基于分治的排序算法 主要步骤: 1.找到分界点 2.递归排序 3.归并,合二为一 如果我的文章对你有帮助的话,请给我点一个赞哦 void merge_sort(int q[],int l,int r){ if(l>=r) return; //1.确定分界点 int mid =l+r>>1; //2.递归排序 merge_sort(q,l,mid); merge_sort(q,mid+1,r); //3.归并,合二为一 int k=0,i=l,j原创 2020-11-03 08:49:53 · 104 阅读 · 0 评论 -
AcWing 786 第k个数(快排模板裸题)
给定一个长度为n的整数数列,以及一个整数k,请用快速选择算法求出数列从小到大排序后的第k个数。 输入格式 第一行包含两个整数 n 和 k。 第二行包含 n 个整数(所有整数均在1~109范围内),表示整数数列。 输出格式 输出一个整数,表示数列的第k小数。 数据范围 1≤n≤100000, 1≤k≤n 输入样例: 5 3 2 4 1 5 3 输出样例: 3 快排模板裸题 #include<iostream> using namespace std; const int N=1e6+10; in原创 2020-11-02 20:29:57 · 157 阅读 · 0 评论