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

快排板子

时间:2024-11-07 17:23:52浏览次数:1  
标签:arr right return int 板子 快排 cmp left

#define MAXN 10000
using namespace std;


int arr[MAXN];

//a
bool cmp(int a,int b)
{
    return a<b;
}

void Qsort(int left,int right)
{
    if(left>=right) return 0;
    if(left==right-1)
    {
        if(!cmp(arr[left],arr[right]))
        {
            int t=arr[left];
            arr[left]=arr[right];
            arr[right]=t;
        }
        return 0;
    }
    int l=left+1,r=right;
    
    int t;
    while(l<r)
    {
        while(cmp(arr[left],arr[r])&&l<r) r--;
        while(cmp(arr[l],arr[left])&&l<r) l++;
        if(l<r)
        {
            t=arr[l];
            arr[l]=arr[r];
            arr[r]=t;
        }
    }
    t=arr[l];
    arr[l]=arr[left];
    arr[left]=t;
    
    Qsort(left,l-1);
    Qsort(l+1,right);
    
    return 0;
}

 

标签:arr,right,return,int,板子,快排,cmp,left
From: https://www.cnblogs.com/Sunny-John/p/18533133

相关文章

  • 【实测】使用STM32H7板子FatFS文件系统每秒读写2MB文件,实时写入7450个文件不出错,写满1
    【测试平台】STM32-V7开发板 【测试例子】https://www.armbbs.cn/forum.php?mod=viewthread&tid=86980V7-025_FatFS文件系统例子(SD卡V1.2)【测试条件和校验】运行例子里面的命令6,命令6是个测速函数,每次写入2MB文件,同时读取出来校验,保证写入的没问题。/************......
  • 板子们
    单调队列——滑动窗口#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constintmaxn=1e6+3;intn,k,a[maxn],mx[maxn],mi[maxn],q[maxn];inlineintread(){intx=0,f=1;charch=getchar();while(ch<'......
  • 交换排序(冒泡/快排)
    一.交换排序交换排序基本思想: 所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置。交换序列的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动  1.1冒泡排序在前面中,介绍了冒泡排序的思路了,冒泡......
  • C++优选算法 分治-快排
    一、基本思想快速排序采用分治法策略,将一个大数组(或子数组)分为两个小数组,然后递归地对这两个小数组进行排序。其基本思想可以概括为“分解、解决、合并”三个步骤:分解:将原问题(即待排序的数组)分解为若干个规模较小、相互独立且与原问题形式相同的子问题(即子数组)。解决:若子问题......
  • 手撕快排的三种方法:让面试官对你刮目相看
    快来参与讨论......
  • 板子们(未完成)
    模板与重要性质(自用)ACM用的资料的前体。正巧要CSP-S了就突然发出来吧(列的多了大多数用处也不大,考CSP-S的学弟不必太在意)。太简单的就不写了。字符串AC自动机实质上是trie树+fail指针,建AC自动机时把不存在的trie树上的边指向了失配后到达的位置。跳fail就是......
  • 打板子机器启动!
    快读#include<bits/stdc++.h>usingnamespacestd;constintN=1000005;intn;intans;intread(){ intff=1,kk=0; charcc=getchar(); while(cc>'9'||cc<'0'){ if(cc=='-')ff=-1; cc=getchar(); } while(cc<=......
  • 区间dp板子
    比较简单的dp,但是建模可能会比较困难。以P1775石子合并(弱化版)为例(https://www.luogu.com.cn/problem/P1775)思路:要求1-n的石子合并的代价,可以看成小的区间问题,化为1-k+k-n的两个区间。然后就有递推式子:dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+w[j]-w[i-1]。编......
  • 数据结构:快排
    注:所有的快排针对无重复大量数据是很快的,但是针对有重复大量数据的排序是很慢的;1.霍尔(hoare)版本时间复杂度:O(N*logN)稳定性:不稳定;在fun()函数while判断时一不小心就会存在越界和和死循环问题;霍尔版本的快排,代码如下:主要实现再func()和quick()函数中intfunc(intarr[],in......
  • 不同的快排算法
    之前写过一篇快排但是现在来看写的很简单,很无聊 快排的思想其实大家都懂这次详细写写不同快排之间的区别和一些优化点 1.首先是pivot元素的选择a.当我们数组本身就是随机的时候,选择第一个/最后一个/中间一个都是可以的,但如果数组是有某种规律的,有可能会退化......