首页 > 其他分享 >一些蒟蒻的模板

一些蒟蒻的模板

时间:2023-08-16 19:23:46浏览次数:29  
标签:sort 二分 int mid merge 一些 排序 模板

快速排序

平时写题用sort就行了,但是如果要求排序就中间结果诸类的题,还是有点用!

听说long long ago,高中组的比赛只要会打sort代码就能得分(当时不允许用STL)

我也想比赛考这样的题……

快排主要还是边界问题

为了防止快排退化为冒泡,可以采用随机数(不过平时我还是习惯取中间值……) 

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int N=1e6+5;
 4 int n,q[N];
 5 void quick_sort(int q[],int l,int r){
 6     if(l>=r) return;
 7     int x=q[l+r>>1];
 8     int i=l-1,j=r+1;
 9     while(i<j){
10         do i++; while(q[i]<x);
11         do j--; while(q[j]>x);
12         if(i<j) swap(q[i],q[j]);
13     }
14     quick_sort(q,l,j);
15     quick_sort(q,j+1,r);
16 }
17 
18 int main(){
19     ios::sync_with_stdio(false);
20     cin.tie(0);
21     cin>>n;
22     for(int i=0;i<n;i++)
23         cin>>q[i];
24     quick_sort(q,0,n-1);
25     for(int i=0;i<n;i++)
26         cout<<q[i]<<' ';
27     return 0;
28 }

 

归并排序

同上,也可以用STL提供的merge

但是这个相对还是用处多一点的

且归并排序的重点不在于边界

合并的过程很重要(要开辅助空间)

 

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int N=1e6+5;
 4 int n,q[N],tmp[N];
 5 void merge_sort(int q[],int l,int r){
 6     if(l>=r) return;
 7     int mid=l+r>>1;
 8     int k=0,i=l,j=mid+1;
 9     merge_sort(q,l,mid);
10     merge_sort(q,mid+1,r);
11     while(i<=mid&&j<=r){
12         if(q[i]<q[j]) tmp[k++]=q[i++];
13         else tmp[k++]=q[j++]; 
14     } 
15     while(i<=mid)
16         tmp[k++]=q[i++];
17     while(j<=r)
18         tmp[k++]=q[j++];
19     for(int i=l,j=0;i<=r;i++,j++)
20         q[i]=tmp[j]; 
21 }
22 int main(){
23     ios::sync_with_stdio(false);
24     cin.tie(0);
25     cin>>n;
26     for(int i=0;i<n;i++)
27         cin>>q[i];
28     merge_sort(q,0,n-1);
29     for(int i=0;i<n;i++)
30         cout<<q[i]<<' ';
31     return 0;
32 }

 

二分查找

整数二分查找重点还是边界问题

浮点二分就无所谓啦~

 

标签:sort,二分,int,mid,merge,一些,排序,模板
From: https://www.cnblogs.com/WBCMZ/p/17635990.html

相关文章

  • 360浏览器上的对js支持的一些特别的问题
    在做web项目时候,基本测试了IE,火狐,chrome,基本就觉得差不多了。但是国内的用户,经常反而使用搜狗,360之类的伪浏览器,因为他们都稀里糊涂的被捆绑了。这里要说的是,在其他浏览器很兼容的东西,但是到360这边就出问题了。2个表格显示的例子。例1:jq('#classManageTable').append(data);这个......
  • nginx的一些安全设置--持续更新
    #nginx配置安全建议ssl_protocolsTLSv1.2TLSv1.3;ssl_ciphersECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA......
  • 【YOLOv5】一些网上找不到答案的报错解决方案
    AssertionError:Labelclass4exceedsnc=4in/xxxxxx解决方法原因一般是由于数据集的标签文件出现的类别数与自己设置的nc类别数不符。例如我原本要检测5类目标,则标签序号为0、1、2、3、4,nc数设置为5,如图:而‘4’这一类mAP太低,所以想去掉,于是只把nc数改为4,所以出现报错。......
  • uniapp项目的一些点
     1.应用需要发布到不同服务器,也即不同的登陆方式,接口地址、文件地址不一致。解决:需要一台公共服务器,在切换登陆方式的时候在这个公共服务器获取信息,拿到不同登录方式的前缀路径。在切换后将前缀地址设置为接口地址和前缀地址。2.app发布到应用商店2.1.使用uniapp......
  • 多模板多语言,HelpLook 一招解决帮助中心与博客建站所需!
    想建立一个具有品牌形象的帮助中心吗?想为你的博客网站增添新的亮点吗?是否还在寻找一种既能展示帮助中心或博客内容,又能自由切换多种语言的搭建平台?那么不要错过HelpLook!part1多样模板选择针对有帮助中心建站和内容博客建站需求的客户,HelpLook提供不同站点模版选项,以便快速搭建......
  • JimuReport v1.6.1版本发布,修复 Freemarker 模板注入高危漏洞
    1.6.12023-08-16更新#升级日志【漏洞通知】修复Freemarker注入漏洞,危害等级:高危描述:Freemarker模板注入导致远程命令执行,远程攻击者可利用该漏洞调用在系统上执行任意命令。Issues处理echarts提示框的位置问题#1630饼图数值显示问题#1814分组支持自定义中文排序......
  • 苹果CMSv10-验证码更改复杂一些-为解决后台用户登录时间和登录次数老是被搞成统一的数
       主要就在这个类中,注释了三行即可。 原形在: ......
  • 关于 SAP ABAP 锁机制的一些疑问和解答
    Locktable的位置LockTable位于EnqueueServer的主内存(共享内存)中。如果enqueue服务器作为enqueue工作进程安装,则该实例的所有工作进程都可以访问锁表。外部应用服务器在enqueue服务器上的入队过程中执行其锁定操作。二者的通信,通过相关调度程序(dispatcher)和消息......
  • ThingsKit物联网平台消息模板管理
    ThingsKit物联网平台消息通知的内容模板。新增点击新增消息模版按钮,选择短信或邮件并填入相关参数,确认新增。模板类型参数说明短信消息类型短信必选|||配置名称|选择的消息配置名称必选,根据消息类型选择|||模版名称|此短信模版名称支持输入......
  • 【漏洞通知】JeecgBoot 修复Freemarker模板注入漏洞, 漏洞危害等级:高危
    Freemarker模板注入导致远程命令执行,远程攻击者可利用该漏洞调用在系统上执行任意命令。JeecgBoot官方已修复,建议大家尽快升级至相关底层依赖和源码一、漏洞描述Freemarker模板注入导致远程命令执行,远程攻击者可利用该漏洞调用在系统上执行任意命令。漏洞危害等级:高危二......