首页 > 其他分享 >快速排序

快速排序

时间:2023-04-10 19:44:44浏览次数:23  
标签:sort int 等于 quick 排序 快速

1.快速排序

思想:分治算法 

三步骤:1.找一个分界值x;

              2.将小于等于x的放在左边,将大于等于x的放在右边;

            3。递归左右两边;

 

 

 

 

#include<iostream>
using namespace std;
const int N=1e5+10;
void quick_sort(int q[],int l,int r)
{
    if(l>=r){
        return;
    }
  int x=q[(l+r)/2],i=l-1,j=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);
}
int main(){
    int n;
    cin>>n;
    int q[N];
    for(int i=0;i<n;i++) cin>>q[i];
    quick_sort(q,0,n-1);
    for(int i=0;i<n;i++) printf("%d ",q[i]);
    return 0;
}

 

标签:sort,int,等于,quick,排序,快速
From: https://www.cnblogs.com/aixin52129211/p/17304093.html

相关文章

  • 前端学习 node 快速入门 系列 —— 项目版权格式化
    其他章节请看:前端学习node快速入门系列项目版权格式化需求替换整个项目的版权信息,替换文件为.c和.h结尾。分析版权信息通常都在文件开头,通过是否有copyright来判断是替换版权还是新增版权实现通过node读取文件,过滤出.c、.h文件,然后用正则判断是替换版权还......
  • flask-day6——sqlalchemy快速插入数据、scoped_session线程安全、sqlalchemy基本增删
    目录一、sqlalchemy快速插入数据二、scoped_session线程安全2.1基本使用2.2加在类上的装饰器三、基本增删查改3.1基本增删查改和高级查询3.2原生sql3.3django中执行原生sql四、一对多4.1表模型4.2新增和基于对象的查询五、多对多5.1表模型5.2增加和基于对象的跨表查询六......
  • 信号、flask-script、sqlalchemy 快速使用、sqlalchemy介绍和快速使用、创建操作数据
    目录1信号1.2django信号2flask-script3sqlalchemy快速使用4sqlalchemy介绍和快速使用4.1原生操作的快速使用5创建操作数据表1信号#Flask框架中的信号基于blinker(安装这个模块),其主要就是让开发者可是在flask请求过程中定制一些用户行为flask和django都有#观察者模......
  • sqlalchemy快速插入数据、scoped_session线程安全、基本增删查改、一对多、 多对多、
    目录1sqlalchemy快速插入数据2scoped_session线程安全2.1基本使用2.2加在类上的装饰器3基本增删查改3.1基本增删查改和高级查询3.2原生sql3.3django中执行原生sql4一对多4.1表模型4.2新增和基于对象的查询5多对多5.1表模型5.2增加和基于对象的跨表查询6连表查询1......
  • 8、快速排序
    1、单路快速排序单路快速排序:O(N*logN)当数组中的元素一致时退化为O(n2)publicclassQuickSort{privatestaticfinalRandomRANDOM=newRandom();privateQuickSort(){}/***快速排序*/publicstatic<EextendsComparable......
  • 7、归并排序
    1、归并排序归并排序:O(N*logN)publicclassMergeSort{privateMergeSort(){}/***归并排序*/publicstatic<EextendsComparable<E>>voidsort(E[]arr){sort(arr,0,arr.length-1);}/***归并排序ar......
  • 快速入门
    MPP数据库是指“大规模并行处理”(MassivelyParallelProcessing)数据库,是一种用于处理大规模数据的数据库系统。它可以处理非常大的数据集并提供快速的数据访问和处理能力。核心思想是将大型数据集分解成小的数据块,并在多个计算节点上并行处理这些块。使用共享存储架构,其中多个......
  • android-RecyclerView实现拖动排序
    android:RecyclerView实现拖动排序最近项目中需要实现对某一类条目进行拖动排序功能,实现技术方案就是利用ItemTouchHelper绑定RecyclerView、ItemTouchHelper.Callback来实现UI更新,并且实现动态控制是否开启拖动功能。其中,ItemTouchHelper是Google在support-v7包中添加的,其于Rec......
  • 快递单号查询入口,批量查询快递单号,对同一天签收的快递单号进行排序或筛选
    如何快速查询多家快递的物流,并筛选出同一天签收的单号呢?今天小编给大家分享一个新的查询技巧,下面一起来试试吧。所需工具安装一个快递批量查询高手快递单号若干操作步骤步骤1:运行【快递批量查询高手】,选择“添加单号”,弹出对话框,将单号复制粘贴进去,保存一下步骤2:保存后,所有快递单号......
  • 2、排序基础
    1、选择排序选择排序是一个基础的排序算法,它的复杂度是O(n2)publicclassSelectionSort{privateSelectionSort(){}privatestatic<E>voidswap(E[]arr,inta,intb){Ek=arr[a];arr[a]=arr[b];arr[b]=k;......