首页 > 其他分享 >快排模板

快排模板

时间:2023-04-22 23:35:49浏览次数:37  
标签:int mid 快排 Num swap 模板

void quick_sort(int* Num, int L, int R)
{
    if (L >= R)return;
    swap(Num[L], Num[L + R >> 1]);
    int i = L; int j = R;
    int Temp = Num[L];
    while (i < j)
    {
            for (; Num[j] >= Temp&&i<j; j--);
            for (; Num[i] <= Temp&&i<j; i++);
            swap(Num[i], Num[j]);
    }
    swap(Num[i], Num[L]);
    quick_sort(Num, L, i -1);
    quick_sort(Num, i + 1, R);
}

非常的精简,非常的美味

附加三元取中的模板方法

int Get_pivot(int *Num,int L,int R)
{
    int mid = (L + R) / 2;
    if (Num[L] > Num[R])
        swap(Num[L], Num[R]);//确保最左边大于最右边
    if (Num[R] > Num[mid])
        swap(Num[R], Num[mid]);
    if (Num[L] > Num[mid])
        swap(Num[L], Num[mid]);
三轮过后会使得中间值交换到mid位置 return mid; }

 

标签:int,mid,快排,Num,swap,模板
From: https://www.cnblogs.com/WKWKSL/p/17344448.html

相关文章

  • 模板匹配
    1#模板匹配2#模板匹配和卷积原理很像,模板在原图像上从原点开始滑动3#计算模板与(图像被模板覆盖的地方)的差别程度,这个差别程度的计算方法在opencv里有6种4#然后将每次计算的结果放入一个矩阵里,作为结果输出。5#假如原图形是AxB大小,而模板是axb大小,则输出结果的矩阵......
  • 设计模式-模板模式在Java中的使用示例-悍马模型制造示例
    场景设计模式-模板模式在Java中的使用示例:设计模式-模板模式在Java中的使用示上面整理了模板模式的使用示例,为加强理解特记录另一个使用示例,以下示例摘自设计模式之禅第二版。模板方法模式定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即......
  • 10-1、(**) 排序函数模板
    已知主函数如程序后缀代码所示,请为其编写适当的模板函数,使主函数的bubbleSort函数可以对一个整型数组和一个浮点数数组进行输入、排序、输出操作。#include<iostream>#include<iomanip>#include<algorithm>usingnamespacestd;template<typenameT>TbubbleSort(T*p,co......
  • 函数模板
    思考:如果重载的函数,其解决问题的逻辑是一致的、函数体语句相同,只是处理的数据类型不同,那么写多个相同的函数体,是重复劳动,而且还可能因为代码的冗余造成不一致性。解决:使用模板例:求绝对值函数的模板主函数如下intmain(){intn=-5;doubled=-5.5;cout<<abs(n)<<endl;cout<<abs(......
  • T233293 【模板】堆排序
    题目描述利用堆排序算法将读入的 N 个数从小到大排序后输出。输入格式第 11 行为一个正整数 N,第 22 行包含 N 个空格隔开的正整数 ai​,为你需要进行排序的数,数据保证了 Ai​ 不超过 109109。输出格式将给定的 N 个数从小到大输出,数之间空格隔开,行末换行......
  • 模板——图论
    缩点(强连通分量)点击查看代码constintN=1e5+5,inf=1e9;vector<int>a[N];stack<int>stk;boolvis[N],instk[N];intdfn[N],low[N],col[N],w[N];//co:染色结果,w:点权vector<int>sz;//sz:第i个颜色的点数intn,m,dcnt;//voiddfs(intx){//Tarjan求强联通分量......
  • phpStorm自定义快捷键,输出代码块,模板
    在开发过程中经常需要打印数据调试,var_dump()或print_r都没办法直观的查看数据,我一般用如下代码打印数据,但是每次手动输入又麻烦,所以设置一个快捷键就能输出一下代码,岂不是一劳永逸:1.进入设置对话框:File->Setting2.接下自定义快捷键:按一下步骤操作完,点击"ok"键![在这......
  • Gstreamer Pad模板介绍
    Pad模板在GStreamer中,Pad模板(PadTemplate)共有两种类型:静态Pad模板(StaticPadTemplate)和动态Pad模板(DynamicPadTemplate)。静态Pad模板是在元素的代码中预定义的,它描述了Pad的名称、方向、数据类型、标识符和其他属性。静态Pad模板用于描述元素的固有能力,因此在......
  • 在线简历制作模板
    分享两个比较好的在线简历制作模板: 链接:https://www.resumeis.com/home极简:链接地址:https://www.polebrief.com/edit......
  • 一维与二维前缀和(蓝桥杯复习+例题讲解+模板c++)
    文章目录前缀和二维前缀和总结3956.截断数组99.激光炸弹前缀和前缀和是一种常见的算法,用于快速计算数组中某一段区间的和。前缀和的思想就是预处理出数组中前缀和,然后用后缀和减去前缀和,即可快速计算区间和。以一维数组为例,设表示数组中第个元素的值,表示数组中前个元素的......