算法基础01一快速排序,归并排序,二分

一.排序
1.快速 排序 基于分治

  1. 确定分界点 左 右 中间 随机
  2. 划分区间 左半边<=x >=x在右半边
  3. 递归处理左右两端
    在这里插入图片描述
    在这里插入图片描述
#include<iostream>using namespace std;const int N = 1e6 +10;int n;
int q[N];
void quick_sort(int q[],int l,int r)
{if(l>=r)return;//边界:只有一个数,或者没有数 不用排序int x=q[l],i=l-1,j=r+1; //1.确定分界点2。双指针指向边界的两侧 (只要因为指针调整交换往前移动一格)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);
}
int main()
{scanf("%d",&n);for(int i=0;i<n;i++) scanf("%d",&q[i]);quick_sort(q,0,n-1);for(int i=0;i<n;i++) printf("%d",q[i]);return 0;
}

2.归并—分治

二. 二分  
1.确定分界点(中间下表)
2.递归排序左边和右边
3归并 把量有有序的数组合为一个

假设两个有效序列 两个指针指向开头 新数组来存答案

在这里插入图片描述
比较两个min 选择最小的微信数组的最小值 假设第一数更小 我们放到新的数组里 然后往后挪一位!
在这里插入图片描述

时间复杂度o(n)
在这里插入图片描述

#include <iostream>using namespace std;const int N = 1e6 + 10;int n;
int q[N], tmp[N];void merge_sort(int q[], int l, int 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++];}// 将排序后的部分复制回 qfor (int i = 0; i < k; i++) {q[l + i] = tmp[i];}
}int main() {scanf("%d", &n);for (int i = 0; i < n; i++) {scanf("%d", &q[i]);}merge_sort(q, 0, n - 1);for (int i = 0; i < n; i++) {printf("%d ", q[i]); // 输出格式调整,添加空格}printf("\n"); // 输出换行return 0;
}

整数二分
本质:有单调性一定可以二分 可以二分不一定就有单调性
如何选择用那个模板
给二分问题如何考虑 :1.写check 2.如何更新

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

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

相关文章

东莞厂家冷风机的通风降温优点

工业冷风机的通风降温优点主要体现在以下几个方面&#xff1a; 高效降温&#xff1a;工业冷风机采用水蒸发原理&#xff0c;通过将热空气经过湿帘或水幕冷却&#xff0c;能够迅速降低空气温度。这种降温方式相比传统压缩机空调系统更为高效&#xff0c;有助于员工在高温环境中…

【新三个数排序的自创算法,这是我厉年来很满意的一次排序算法设计,最好小于O(N)最坏O((NN/3)/2)。】2024-5-7

缘由如何用C&#xff0b;&#xff0b;解决一下问题_编程语言-CSDN问答 int a[]{1, 4, 7, 8, 5, 2, 3, 6, 9, 7}, n 10, x n, jh 0, j 0;px:if (j < n) {//缘由https://ask.csdn.net/questions/8099444if (--x < 2 j)x n - 1, j 3;if (x < n - 1 && a[x…

档案数字化电子文件检测工具

在档案数字化的过程中&#xff0c;需要注意扫描的电子文件属性和质量是否符合要求。nhdeep电子文件属性检测工具&#xff0c;支持对图片、pdf和ofd文件&#xff0c;显示文件的基本属性&#xff1a;文件类型、文件大小、创建时间&#xff1b;采集文件的分辨率、图片颜色、图片的…

Agent AI智能体:我们的生活即将如何改变?

你有没有想过&#xff0c;那个帮你设置闹钟、提醒你朋友的生日&#xff0c;甚至帮你订外卖的智能助手&#xff0c;其实就是Agent AI智能体&#xff1f;它们已经在我们生活中扮演了越来越重要的角色。现在&#xff0c;让我们一起想象一下&#xff0c;随着这些AI智能体变得越来越…

基于STM32的智能垃圾桶设计(论文+源码)_kaic

基于STM32的智能垃圾桶设计 摘 要 随着社会科学技术的迅猛进展&#xff0c;人们的生活质量和速度也在不断提高。然而&#xff0c;大多数传统的家庭垃圾桶已经过时且缺乏创新&#xff0c;缺乏人性化设计。它们使用起来不方便、不卫生&#xff0c;所有的生活和废物垃圾都被混合…

【XR806开发板试用】阻塞式串口发送与接收教程

本文基于wsl2搭建的ubuntu18.04 vscode编辑器 很奇怪啊&#xff0c;找了半天居然没人发串口的教程&#xff0c;于是只能自己试一试了&#xff0c;在此发一个阻塞式的串口发送与接收的教程。并且&#xff0c;感谢.ACE彭洪权大佬在我配置环境遇到几十个报错的时候帮我远程搭建环…

Python中使用嵌套for循环读取csv文件出现问题

如果我们在使用嵌套循环来读取 CSV 文件时遇到了问题&#xff0c;可以提供一些代码示例和出现的具体错误&#xff0c;这样我可以更好地帮助大家解决问题。不过&#xff0c;现在我可以给大家一个基本的示例&#xff0c;演示如何使用嵌套循环来读取 CSV 文件。 问题背景 我需要读…

I forgot my Plex Account PIN; how can I reset it? How can I change my PIN?

If you’ve set a PIN on your Plex account, it’s possible to reset or remove that PIN. Related Page: Plex Home Regular Plex Account If you know the current PIN If the current PIN is known, then simply edit the current PIN on the Settings > Users &…

torch教程

一 基本用法 1 torch.autograd.Function PyTorch 74.自定义操作torch.autograd.Function - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/344802526 虽然pytorch可以自动求导,但是有时候一些操作是不可导的,这时候你需要自定义求导方式。也就是所谓的 "Extending t…

怎样选择IT外包公司?需要注意什么?

随着网络化、数字化、智能化快速发展&#xff0c;一部分企业成立自己的IT部门&#xff0c;负责各个科室的网络安全&#xff0c;大部分企业把网络安全、数据安全&#xff0c;外包给专业的IT外包公司&#xff0c;既提升了办公效率&#xff0c;企业又能把主要精力放在发展核心业务…

BS-Diff | 扩散模型在骨抑制任务上的首次登场!

摘要 胸部 X 射线&#xff08;CXR&#xff09;是肺部筛查中常用的低剂量方式。然而&#xff0c;由于大约 75% 的肺部区域与骨骼重叠&#xff0c;这反过来又阻碍了疾病的检测和诊断&#xff0c;因此 CXR 的功效受到了一定程度的影响。作为一种补救措施&#xff0c;骨抑制技术已…

算法提高之能量项链

算法提高之能量项链 核心思想&#xff1a;区间dp 通过观察发现可以将n个珠子最后的n1个数看作石子 合并石子 在l~r的范围内 找k作隔断 #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N 110,M N<<…

libcity笔记:libcity/evaluator/traj_loc_pred_evaluator.py

1 构造函数 2 _check_config 检查配置是否符合评估器的要求&#xff0c;确保评估过程能够顺利执行 3 collect 4 evaluate 5 save_result & clear

【自动驾驶|毫米波雷达】逻辑化讲解测角全流程

第一次更新&#xff1a;2024/5/7 目录 一. 引入 基础概念 二. 测角原理 1. 接收天线不同位置 2. 角度几何关系 3. 角度正负规定 4. 角度测量 5. 最大不模糊角 三. 角度分辨率 1. 相位变化量 2. 角度表示 3. 角度变化量 三. 测角算法 1. 三维快速傅里叶变换 (3D-FFT&…

代码随想录算法训练营第二十天:二叉树成长

代码随想录算法训练营第二十天&#xff1a;二叉树成长 110.平衡二叉树 力扣题目链接(opens new window) 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a;一个二叉树每个节点 的左右两个子树的高度差的绝…

用c语言进行栈的实现

一、栈的概念 栈Stack&#xff1a; 是只允许在一端进行插入或删除的性表线。首先栈是一种线性表&#xff0c;但限定这种线性表只能在某一端进行插入和删除操作&#xff08;类似于一个只有开口的瓶子&#xff09;。&#xff08;遵循LIFO原则&#xff09;——后进先出&#xff08…

音视频知识基础篇----媒体格式

1. 流媒体&#xff08;Streaming media&#xff09; 流媒体&#xff1a;一连串的多媒体资料压缩后&#xff0c;经过互联网分段发送资料&#xff0c;在互联网上即时传输影音以供观赏的一种技术与过程&#xff0c;此技术使得资料数据包得以像流水一样发送&#xff0c;如果不使用此…

想让网站实现HTTPS访问?教你十分钟内实现

实现网站HTTPS访问通常遵循以下简明步骤&#xff1a; 1. 选择并申请SSL证书&#xff1a; - 根据网站需求&#xff0c;挑选合适的SSL证书类型。常见的有&#xff1a; - DV&#xff08;域名验证&#xff09;&#xff1a;适用于个人或小网站&#xff0c;仅验证域名所有权。 - OV&a…

html--互动星空

<!doctype html> <html> <head> <meta charset"utf-8"> <title>互动星空</title><style> html,body {margin:0;overflow:hidden;width:100%;height:100%;cursor:none;background:black;background:linear-gradient(to bot…

python 使用 MQTT

目录结构 1、py代码 offRelay12-yixing.py # _*_ coding: utf-8 _*_ # 须用到第三方库&#xff1a;paho-mqtt # 安装命令 python3 -m pip install paho-mqttimport time import json import paho.mqtt.client as mqtt# 函数&#xff1a;关闭所有房间的12路继电器模块上指定的…