王道快速排序和归并排序的完整代码

2023-11-11

这是快排的代码要作为模板背下来

#include<iostream>
#include<algorithm>
using namespace std;
int poration(int *a,int low,int high)//用来每次找最中间的那个元素(分割元素)
{
    int mid=a[low];
    while(low<high)
    {
        while(low<high&&a[high]>=mid) high--;
        a[low]=a[high];
        while(low<high&&a[low]<=mid) low++;
        a[high]=a[low];
    }
    a[low]=mid;
    return low;
}
void quicksort(int *a,int low,int high)//主要进行递归的函数,用来进行快速排序,quicksort
{
    if(low<high)
    {
        int mid=poration(a,low,high);
        quicksort(a,low,mid-1);
        quicksort(a,mid+1,high);
    }
}
int main()
{
    int n;
    cin>>n;
    int a[n];
    for(int i=0;i<n;i++)
    cin>>a[i];
    quicksort(a,0,n-1);
    for(int j=0;j<n;j++)
    cout<<a[j]<<" ";
}

这是归并的模板都来自王道书上

#include<iostream>
#include<algorithm>
using namespace std;
int b[100];//用来存放数字的数字,用来返回较小值
void merge(int *a,int low,int mid,int high)
{
    for(int i=low;i<=high;i++)
    b[i]=a[i];
    int i=low,k=low,j=mid+1;//这里面的东西写道下面的for循环之中也是可以的
    for(;i<=mid&&j<=high;k++)//for(int i=low,int k=low,int j=mid+1;i<=mid&&j<=high;k++)
    {
        if(b[i]<b[j])
        a[k]=b[i++];
        else
        a[k]=b[j++];
    }
    while(i<=mid) a[k++]=b[i++];
    while(j<=high) a[k++]=b[j++];
}
void mergelist(int *a,int low,int high)
{
    if(low<high)
    {
        int mid=(low+high)/2;
        mergelist(a,low,mid);
        mergelist(a,mid+1,high);
        merge(a,low,mid,high);
    }
}
int main()
{
    int n;
    cin>>n;
    int a[n];
    for(int i=0;i<n;i++)
    cin>>a[i];
    mergelist(a,0,n-1);
    for(int i=0;i<n;i++)
    cout<<a[i]<<" ";
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

王道快速排序和归并排序的完整代码 的相关文章

随机推荐

  • 最新AI创作系统ChatGPT网站源码+详细图文搭建教程/支持GPT-4/支持AI绘画/Prompt应用/访客体验功能

    一 SparkAI创作系统 如何搭建部署AI创作ChatGPT系统呢 小编这里写一个详细图文教程吧 SparkAi使用Nestjs和Vue3框架技术 持续集成AI能力到AIGC系统 1 1 程序核心功能 程序已支持ChatGPT3 5 4
  • Python:安装Flask web框架hello world示例

    安装easy install pip install distribute 安装pip easy install pip 安装 virtualenv pip install virtualenv 激活Flask pip install Fl
  • 搭建私人图床结合内网穿透实现公网访问,让您的摄影作品连接世界

    文章目录 1 树洞外链网站搭建 1 1 下载安装树洞外链 1 2 树洞外链网页测试 1 3 cpolar的安装和注册 2 本地网页发布 2 1 Cpolar临时数据隧道 2 2 Cpolar稳定隧道 云端设置 2 3 Cpolar稳定隧道
  • Select、Poll、Epoll的使用和区别,多种IO的区别

    目录 一 四种IO分类 二 I O多路复用select 三 I O多路复用Poll 四 I O多路复用Epoll 五 三种多路复用的区别总结 1 支持一个进程所能打开的最大连接数 2 fd剧增后带来的IO效率问题 3 消息传递方式 4 索引
  • 一、PyTorch基础:Tensor基础操作

    1 1Tensor Tensor 又名张量 读者可能对这个名词似曾相识 因它不仅在PyTorch中出现过 它也是Theano TensorFlow Torch和MxNet中重要的数据结构 关于张量的本质不乏深度的剖析 但从工程角度来讲 可简
  • SQL注入-报错注入

    页面没有显示位 但有数据库的报错信息时 可使用报错注入 报错注入是最常用的注入方式 也是使用起来最方便 我觉得 的一种注入方式 updatexml 1 3 第二个参数包含特殊字符时 数据库会报错 并将第二个参数的内容显示在报错内容中 返回结
  • 机器学习——特征工程(3分钟的超详细介绍)

    目录 1 什么是特征工程 2 数据预处理和特征处理 2 1 数据预处理 2 2 特征处理 3 特征降维 3 0 什么是特征降维 3 1 特征选择 3 2 线性降维 3 2 1 主成分分析法 PCA 3 2 2 线性判别分析法 LDA 1 什
  • 使用ESCAPE处理模糊查询%的问题

    前言 在模糊查询时 如果要查询的内容中有 比例 小明 如果不做处理 那么就会查询到所以的小明相关的数据 不能只查询到小明 的数据 1 创建工具类 工具类 public class StringUtils private static fin
  • QT关于QGIS3.26的二次开发

    目录 1 使用平台以及版本 2 显示一张tif格式的图片 3 代码的具体分析 4 一点基础知识 5 其他代码 1 使用平台以及版本 VS 2022 编译器MSVC2019 QT版本 5 15 2 系统 win10 QGIS版本 3 26 9
  • Raspberry系统管理 —— 安装和配置OpenVINO

    文章目录 什么是OpenVINO 下载测试用例 加速自己的模型 什么是OpenVINO OpenVINO Open Visual Inference and Neural Network Optimization 是一个用于视觉推理和神经网
  • 【计算机视觉

    文章目录 一 2D open vocabulary object detection的发展和研究现状 二 基于大规模外部图像数据集 2 1 OVR CNN Open Vocabulary Object Detection Using Cap
  • PyQt学习笔记-信号与槽

    PyQt学习笔记 信号与槽 一 基本概念 二 编辑信号与槽 三 自定义槽 四 将自定义的槽函数连接到信号 五 多窗口设计 1 设置启动窗口 2 窗口之间的关联 一 基本概念 信号与槽是Qt的核心机制 也是PyQt5编程时对象之间通信的基础
  • JDBC操作MySQL5日期类型字段的问题解决方法

    JDBC操作MySQL5日期类型字段的问题解决方法 由于日期数据的特殊性和多样性 以及不同的数据库 编程语言对日期的定义和处理方式差别 导致了日期处理的复杂性 和多样性 流行的Hibernate iBatis等持久化框架从中解决了各种Jav
  • Flutter之数据库的使用(sqflite_common_ffi)

    sqflite是Flutter的SQLite插件 支持的平台有 iOS Android MacOS 桌面端可以使用sqflite common ffi 本篇文章以sqflite common ffi为主 sqflite common ffi
  • m2增长率曲线_中国m2历年数据曲线图_中国m2历年数据

    2012年5月经济数据 搜狐财经 580x400 39KB JPEG 李彦宏 有图有真相 移动互联网时代真的结束了 693x390 130KB PNG 图1 全国主要城市分用途地价环比增长率曲线图 540x248 36KB JPEG 美元强
  • 八大排序算法-基数排序

    基数排序 radix sort 定义 属于 分配式排序 distribution sort 又称 桶子法 bucket sort 或bin sort 顾名思义 它是透过键值的部份资讯 将要排序的元素分配至某些 桶 中 藉以达到排序的作用 分
  • JSP的初次使用

    什么是jsp JSP这三个字母是Java Server Pages的缩写 见名知意java的服务器页面 来段代码 h1 这是一个简单的JSP页面 h1 p style font size 36 color blue 1到100的连续 p
  • 处理高并发、大数据存储的网站技术架构

    本文转载自 https zhuanlan zhihu com p 24669514 大型网站技术架构剖析 高并发 大流量 40亿 PV page view 3 5亿 IP 高可用 高可用MySQL 7 24小时不间断运行 海量数据 用户分布
  • 生产环境诊断利器 WinDbg 帮你快速分析异常情况 Dump 文件

    一 简介 生产环境偶尔会出现一些异常问题 WinDbg 或 GDB 就是解决此类问题的利器 调试工具 WinDbg 如同医生的听诊器 是系统生病时做问题诊断的逆向分析工具 Dump 文件类似于飞机的黑匣子 记录着生产环境程序运行的状态 本文
  • 王道快速排序和归并排序的完整代码

    这是快排的代码要作为模板背下来 include