算法基础
小新的博客.
具体事情反映人生质地。
展开
-
二分解题模板
整数二分的本质:边界:找到一个性质可以将区间一分为二,一半满足性质,一边不满足性质本质并不是单调性有单调性的话一定可以二分,没有单调性也有可能是二分1.找中间值 mid=l+r>>2;...原创 2020-11-04 10:59:39 · 158 阅读 · 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 · 128 阅读 · 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 · 106 阅读 · 0 评论 -
AcWing 786 第k个数(快排模板裸题)
给定一个长度为n的整数数列,以及一个整数k,请用快速选择算法求出数列从小到大排序后的第k个数。输入格式第一行包含两个整数 n 和 k。第二行包含 n 个整数(所有整数均在1~109范围内),表示整数数列。输出格式输出一个整数,表示数列的第k小数。数据范围1≤n≤100000,1≤k≤n输入样例:5 32 4 1 5 3输出样例:3快排模板裸题#include<iostream>using namespace std;const int N=1e6+10;in原创 2020-11-02 20:29:57 · 160 阅读 · 0 评论