【算法】acwing基础课笔记01-快排,归并

news2024/11/15 11:00:35

第一章(基础算法)(一)

以前排序都没怎么自己手写过,这学期终于决定抛弃各种番和游戏好好学一下…记点笔记激励一下自己。

视频知识

00:0000:30快速排序,00:3000:49归并排序,00:50~01:20二分排序

1.快速排序 - 先处理后递归

难点:划分

  • 确定一个分界点
  • 调整区间
  • 递归处理左右两端
    暴力版)需要开辟额外空间。利用a[],b[]在这里插入图片描述

优美版)无需开辟额外空间。利用指针i,j
处理边界问题-背一个模板
代码模板

void quick_sort(int q[],int l,int r){
  if(l>=r)return;
  int i=l-1,j=r+1,x=q[l+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);
}

练题总结
在实际练习中容易忘记if(l>=r)return;

2.归并排序 - 先递归后处理

时间复杂度:nlog2n
难点:合并
在这里插入图片描述
在这里插入图片描述
代码模板

void merge_sort(int q[],ing l,ing r){
  if(l>=r)return;
  int mid=l+r>>1;
  merge_sort(q,l,mid);
  merge_sort(q,mid+1,r);
  int k=0,i=l,j=mid+1;
  while(i<=mid&&j<=r){
    if(q[i]<=q[j])tmp[k++]=q[i++];
    else tmp[k++]=q[j++];

  while(i<=mid)tmp[k++]=q[i++];
  while(j<=r)tmp[k++]=q[j++]
  for(i=l,j=0;i<=r;i++,j++)q[i]=tmp[j];
  }
}

练题总结
在实际练习中容易忘记if(l>=r)return;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1536448.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Day03-数据库管理(事务管理,用户管理,MySQL8的部分新特性)

文章目录 Day03 数据库管理学习目标1. 事务管理1.1 事务的概念1.2 事务的特性1.3 语法1.4 事务的并发问题1.5 事务隔离级别1.6 设置和查看隔离级别 2 用户管理2.1 创建删除用户2.2 权限管理2.2.1 权限赋予的原则2.2.2 权限赋予2.2.3 权限回收2.2.4 登录管理 3. MySQL8的部分新特…

基于Matlab的视频人体动作识别,Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…

LeetCode # 199. 二叉树的右视图

199. 二叉树的右视图 题目 给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4] 示例 2: 输入: [1,null,3] 输出: [1,3] 示例 3…

Flink入门知识点汇总(二)

具体内容请看b站尚硅谷课程&#xff01; 32_Flink运行时架构_提交流程_Yarn应用模式_哔哩哔哩_bilibili 窗口 Flink的窗口并不是静态准备好的&#xff0c;而是动态创建的。数据流到达时不会准备24个或者其他完整数量的桶&#xff0c;而是当下桶接满了&#xff0c;才临时又拿新…

ClickHouse01-什么是ClickHouse

什么是ClickHouse&#xff1f; 关于发展历史存在的优势与劣势什么是它风靡的原因&#xff1f; 什么是ClickHouse&#xff1f; 官方给出的回答是&#xff0c;它是一个高性能、列式存储、基于SQL、供在线分析处理的数据库管理系统 当然这边不得不提到OLAP(Online Analytical Pr…

Nginx 的安装、启动和关闭

文章目录 一、背景说明二、Nginx 的安装2.1、依赖的安装2.2、Nginx 安装2.3、验证安装 三、启动 Nginx3.1、普通启动3.2、如何判断nginx已启动3.3、通过配置启动3.4、设置开机启动 四、关闭 Nginx4.1、优雅地关闭4.2、快速关闭4.3、只关闭主进程4.4、使用nginx关闭服务 五、重启…

IP SSL证书注册流程

使用IP地址申请SSL证书&#xff0c;需要用公网IP地址申请&#xff0c;申请之前确保直接的IP地址可以开放80或者443端口两者选择1个就好&#xff0c;端口不需要一直开放&#xff0c;只要认证的几分钟内开放就可以了&#xff0c;然后IP地址根目录可以上传txt文件。 IP SSL证书认…

【最后2天】京东云游戏云服务器0门槛抽奖送!云服务器选购推荐 京东云 阿里云 腾讯云对比 幻兽帕鲁 雾锁王国 省钱学生党

好消息&#xff1a;抽奖活动开启&#xff01;时间&#xff1a;3月17日——3月24日 最高奖品&#xff1a;16G 6个月&#xff1b;32G 3个月 抽奖规则&#xff1a;B站点赞评论关注即可参与抽奖&#xff0c;3.24日公布获奖名单。 抽奖地址&#xff1a; 【首次抽奖】16G、32G免费…

EKMA曲线及大气O3来源解析技术应用

目前&#xff0c;大气臭氧污染成为我国“十四五”期间亟待解决的环境问题。臭氧污染不仅对气候有重要影响&#xff0c;而且对人体健康、植物生长均有严重损害。为了高效、精准地治理区域大气臭氧污染&#xff0c;首先需要了解导致臭氧生成的主要前体物。因此&#xff0c;EKMA曲…

LeetCode:2617. 网格图中最少访问的格子数(优先级队列 Java)

目录 2617. 网格图中最少访问的格子数 题目描述&#xff1a; 实现代码与解析&#xff1a; 优先级队列 原理思路&#xff1a; 2617. 网格图中最少访问的格子数 题目描述&#xff1a; 给你一个下标从 0 开始的 m x n 整数矩阵 grid 。你一开始的位置在 左上角 格子 (0, 0) 。…

鸿蒙一次开发,多端部署(六)自适应布局

针对常见的开发场景&#xff0c;方舟开发框架提炼了七种自适应布局能力&#xff0c;这些布局可以独立使用&#xff0c;也可多种布局叠加使用。 下面我们依次介绍这几种自适应布局能力。 拉伸能力 拉伸能力是指容器组件尺寸发生变化时&#xff0c;增加或减小的空间全部分配给容…

【Winform学习笔记(十一)】解决无边框窗体最大化显示异常问题

解决无边框窗体最大化显示异常问题 前言正文1、防止改变窗口大小时控件闪烁2、FrmMain_SizeChanged 前言 Winform 无边框窗体的设计&#xff0c;旨在为用户提供更加独特和个性化的界面体验&#xff0c;但是在实现这一设计的过程中&#xff0c;最大化显示异常问题往往成为开发者…

关于5.x版本的Neo4j与py2neo的访问技巧

先说结果。 Neo4j是可以使用py2neo来操作的。而且网上搜到的教程和方法里&#xff0c;首推的http连接方法可能并不是最好的&#xff0c;应该用 bolt 方法可能更好。 对于大多数使用 py2neo 与 Neo4j 数据库进行交互的应用程序来说&#xff0c;建议使用 Bolt 协议&#xff08;即…

谷歌DeepMind推出3D游戏AI代理SIMA,实现自然语言操控游戏新纪元

近日&#xff0c;谷歌DeepMind研究团队推出了一款名为SIMA的创新AI代理&#xff0c;专为3D游戏环境设计。这款代理独树一帜&#xff0c;无需访问游戏源代码或依赖定制API&#xff0c;仅通过输入图像和简单的自然语言文本指令&#xff0c;便能实现与人类玩家相当的游戏操作。 AI…

Django数据库查询

聚合查询 分组查询 F与Q查询 默认情况下,用Q包裹的两个条件,用逗号分割也是and关系 choices参数 只要某个字段的可能性是完全可以列举出来的,可以采取choices参数 该gender字段存的还是数字,但是如果数字在上面的元组列举范围内,该怎么获取对应的值,如果不在范围内,会怎…

springboot网站开发解决图片存储问题,前端无法访问解决办法

最近使用springboot开发网站的时候&#xff0c;遇到了一个图片存储问题&#xff0c;我之前的方法是&#xff0c;把证书图片存在项目的static目录下面&#xff0c;这样的话&#xff0c;打包发布到远程服务器后&#xff0c;虽然可以正常展示已经打包封装好的内容&#xff0c;但是…

【Java】Java程序员必备的一些流程图

一、spring的生命周期 Spring作为当前Java最流行、最强大的轻量级容器框架&#xff0c;了解熟悉spring的生命周期非常有必要&#xff1b; 首先容器启动后&#xff0c;对bean进行初始化按照bean的定义&#xff0c;注入属性检测该对象是否实现了xxxAware接口&#xff0c;并将相…

浙江IGM机器人K5控制柜维修需要注意哪些问题?

IGM机器人K5控制柜常见故障及维修方法 1、电源故障&#xff1a; 表现为IGM机器人K5控制柜不能开机或突然断电。 检查&#xff1a;检查电源线是否连接良好&#xff0c;有无破损&#xff1b;检查电源模块的输出电压是否正常&#xff1b; 维修方法&#xff1a;如电源模块损坏&…

蓝桥杯-模拟-旋转图片

题目 思路 Python中range() 函数的使用介绍_python指定范围内的整数-CSDN博客 range(start, stop, step)&#xff1a;生成一个序列包含start到stop-1的整数&#xff0c;其中步长为step 代码 n, m map(int, input().split()) a [list(map(int, input().split())) for _ in…