自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 2.整数二分

代码中的check()函数是用来判断变量mid位于我们要求的数的左边或者右边,而第二个函数之所以要取mid=l+r+1>>1,就是因为我们在取值是会取一个非整数的下界;如果mid=l+r,当l+r等于奇数时,且l=r-1时,l就会一直等于自己,从而出现死循环。二分,作为基础算法中的一种,我相信大部分人都知道如何去使用,这也不是一个很难的东西,但在整数二分中,我们却常常会在二分后出现死循环的情况,这里就给两个在不同情况下使用的代码,几乎所有的整数二分都可以使用。

2022-09-16 17:58:14 139 1

转载 结构体内嵌比较函数bool operator

直入主题,这个函数主要是用来将数组进行排序的关于内嵌比较函数struct node2 {3 int l,r;4 bool operator <(const node &a)const{5 return r < a.r;6 }7 }a[maxn];这个就可以直接通过比较r的大小进行排序,如果是r<a.r,那就是从小到大排序,反之就是从大到小.顺便提一下,sort函数默认是从小到大排序,而优先队列默认是从大到小排序

2022-05-04 15:23:50 2528

原创 1.快速排序

快速排序,简称快排。如大家所见,当我们要用C语言或者c++等编译语言将一堆数字进行排序的时候,其实并不复杂,我们只需要用两次for就可以将数字排好顺序,但这样排序的时间复杂度,大家应该都知道是n(n^2)的,在一些ac题目中,其实是可能会超时的,比如一道题的范围是0<N<10^9,那么这样排序我们最多要进行10^18次,显然这时肯定会超时的,所以这时候就要用到快排的思想。首先,快排的时间复杂度是o(n)的,比起我们的常规方法,时...

2022-04-06 11:30:22 424

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除