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

排序-快排

时间:2023-02-18 16:56:34浏览次数:42  
标签:arr lc int QuickSort 快排 rc pivot 排序

快排是一个递归的排序过程,每次递归,将当前序列的第一个元素当作中间值pivot(也可以选最右边或者随机),把比pivot小的放左边,比pivot大的放右边,再依次对左边的序列和右边的序列分别排序。  vector<int> MySort(vector<int>& arr) {         // write code here         int n = arr.size();         if(n < 2){             return arr;         }         QuickSort(arr,0,n-1);         return arr;     }
    void QuickSort(vector<int>& arr, int l, int r){         if(l >= r){             return;         }         int pivot = arr[l];         int lc = l,rc = r;         while(lc < rc){             while(lc < rc && arr[rc] > pivot){                 rc--;             }             if(lc < rc){                 arr[lc] = arr[rc];                 lc++;             }             while(lc < rc && arr[lc] <= pivot){                 lc++;             }             if(lc < rc){                 arr[rc] = arr[lc];                 rc--;             }         }         arr[lc] = pivot;         QuickSort(arr,l,lc-1);         QuickSort(arr,lc+1,r);     }

标签:arr,lc,int,QuickSort,快排,rc,pivot,排序
From: https://www.cnblogs.com/starter-songudi/p/17133028.html

相关文章

  • 冒泡排序(实现一个数组从小到大排序)---C语言
    flage作为一个优化效果#include<stdio.h>#defineN10intmain(){inti,j,t,flag=1;//flag=1就是有交换flag=0就是无交换inta[N];for(i=0;i<N;i++)......
  • AcWing 787.归并排序(Java)
    题目来源:https://www.acwing.com/problem/content/description/789/题目描述给定你一个长度为n的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将......
  • #yyds干货盘点# LeetCode程序员面试金典:排序矩阵查找
    题目:给定M×N矩阵,每一行、每一列都按升序排列,请编写代码找出某元素。示例:现有矩阵matrix如下:[ [1, 4, 7,11,15], [2, 5, 8,12,19], [3, 6, 9,......
  • Java基础知识点(数组较难的的一个练习-数组的排序)
    冒泡排序:第一步:从第一个元素开始,将相邻的两个元素进行比较,如果前一个元素比后一个元素大,则交换他们的位置,直到最后两个元素完成比较。整个过程完成后,数组中最后一个元素自然......
  • 算法刷题-Excel表列序号、单词拆分 II、排序链表
    Excel表列序号(数学、字符串)给你一个字符串columnTitle,表示Excel表格中的列名称。返回该列名称对应的列序号。例如,A->1B->2C->3...Z->26AA->27AB->......
  • yunUI组件库解析:图片上传与排序组件yImgPro
    yunUI是笔者开源的微信小程序功能库。目前其中包含了一些复杂的功能组件。方便使用。未来它将分为组件、样式、js三者合为一体,但分别提供。本文所用代码皆来源于组件库中的......
  • C语言填空:整型数组降序排序
    #include<stdio.h>//将数组中的值降序排序并输出main(){inta[10]={12,3,5,78,98,345,23,35,67,99};inti,j,k,t;for(i=0;【1】;i++){......
  • mysql 两表,两个update_time排序问题
    当有2表要联表查询时,各有1个update_time。大于某个时间开始查询,查询更新的数据,根据update_time排序(两张表有可能之更新一张表而已)。 1.工单表CREATETABLE`shop_work......
  • 算法之交换排序
    一、概念思想:如果元素比较是逆序则交换元素。1.冒泡排序基本思想:基于简单交换思想每趟不断将元素两两比较,按照需要是顺序判断是否需要进行交换。voidbubble_sor......
  • 排序算法
    写出对数组12,23,8,15,33,24,77,55进行一趟选择排序、冒泡排序、插入排序、快速排序的过程和结果 ......