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

快速排序

时间:2022-10-18 13:22:28浏览次数:49  
标签:右边 right 下标 int Quicksort 排序 快速 left

11//定义数列,左位,右位
13空表返回空值
15定义左下标右下标
16定义中心轴
17中心轴初始位置是在数列最左边
19最右边值大于中心轴的值时
21最右边的下标往左移一位
25最右边的值放到最左边的下标指的那个位置上去
反之亦是
所以比中心轴的值大的值不是随便扔到左边的,是扔到左边靠近右边的下标的位置
35左右下标重合
37中心轴的值放到左下标去(右也行)
40中心轴的左边再重复前面的步骤迭代排序,右边也是,但是为了左右起点不重复所以一个+1一个-1

 

嘻嘻特别严谨的缩进格式哇

#include<iostream>
using namespace std;

void  Quicksort(int a[],int L,int R)
{
    if(L>=R)
        return ;
        
    int left=L,right =R;
    int privot = a[left];
    
    while(left<right)
    {
        while (left<right&&a[right]>=privot)
        {
            right--;
        }
        if (left<right)
        {
            a[left]=a[right];
        }
        
        while(left<right&&a[left]<=privot)
        {
            left++;
        }
        if(left<right)
        {
            a[right]=a[left];    
        }
        
        if(left>=right)
        {
            a[left]=privot;
        }
    }    
    Quicksort(a,L,right-1);
    Quicksort(a,right+1,R);

}


int main()
{
    int n;
    cin>>n;
    int a[100001];
    
    for(int i=0;i<n;i++) cin>>a[i];
     Quicksort(a,0,n-1);
     
     for(int i=0;i<n;i++) cout<<a[i]<<" ";
      
    return 0;
}

标签:右边,right,下标,int,Quicksort,排序,快速,left
From: https://www.cnblogs.com/pfwvan666/p/16802254.html

相关文章

  • 快速解决谷歌浏览器自带翻译不好用的问题
    工具先说工具,我写了一个小工具,可以快速修改,不需要任何其他知识。其中"修改的Ip"为本次你要修改的Ip地址,如果之前你已经修改过了,这里会显示现在的IP,如果没有,这里是空的。如......
  • Ubuntu快速换源教程
    目的:为了解决上网查资料过慢问题。可以通过换源来提高速度。(1)备份系统源cd/etc/aptsudomvsources.listsources.list.bak(2)开始修改sources文件有安装vim用户:......
  • javascript对象数组内元素排序
    数组内对象排序数组项是对象,需要根据数组项的某个属性对数组进行排序。注意:想往后排的,后面的-前面的  a.age-b.age,如果是从小到大排序,大的-小的letperson=[......
  • 算法修炼23招----第一招:快速幂
    目录​​......
  • Eclipse插件开发Java快速修复
    介绍在Eclipse中在有报错的地方,使用快捷键Ctrl+1就会弹出几种解决问题的方案,这时候只要选择一种就可能快速地修复该问题。这些常见的问题,有些可能是通用的,例如:没有导入包。......
  • 1045 快速排序(JAVA)
    著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。给定划分后的N个......
  • 如何快速学习
    这篇文章我写了很长时间。起因是一个同学在我的课程问答区的提问。这个问题激起了我很多思考。最后形成了这篇文章。文章可能会比较长,我也没有花太多心思找什么配图。但如......
  • 【模板】快速数论变换
    依旧是常数很大的板子。在H_Kaguya改动之前,达到了\(2.61\,s\)的绝望时间现在好多了,\(1.10\,s\)。(内存不连续访问我会记你一辈子的)#include<iostream>charch;sho......
  • 《web前端面试题》第一问-如何快速居中对齐?
    参赛话题:前端面试宝典话题描述:欢迎各位加入话题创作得小伙伴,如果我没有猜错得话,我觉得你是应该同我一样是一位前端人。如今前端在IT事业中的占比越来越重,已经成为不可缺少的......
  • 利用opencv带你玩转人脸识别-上篇(读取图片,灰度转换,尺寸修改,绘制矩形快速入门)
    ......