当前位置: 首页 > article >正文

代码随想录--排序算法

912.排序数组

快速排序

思路:

		1.  设置一个pivot
		2. 将小于nums[pivot]的值 放在左边
		3. 将 大于nums[pivot]的值  放在 右边
		4. 递归调用

注意:必须先比较nums[high] 与pivot

代码:

class Solution {

    int partition(vector<int>&nums, int low, int high){
        int pivot = nums[low];
        while(low<high){
            while(low <high && nums[high]>=pivot){
                high--;
            }nums[low] = nums[high];

            while(low<high && nums[low]<=pivot){
                low++;
            }nums[high] = nums[low];

        }
        nums[low] = pivot;
        return low;
    }

    void quiksort(vector<int>&nums, int low, int high){
        if(low<high){
            int pos = partition(nums, low, high);
            quiksort(nums, low, pos-1);
            quiksort(nums, pos+1, high);
        }
    }

public:
    vector<int> sortArray(vector<int>& nums) {
        quiksort(nums, 0, (int)nums.size()-1);
        return nums;
    }
};

在这里插入图片描述


http://www.kler.cn/a/273720.html

相关文章:

  • LeetCode 面试经典150题 27.移除元素
  • 如何搭建“Docker Registry私有仓库,在CentOS7”?
  • Linux-MDK can电机带导轨 C++封装
  • 【Python循环4/5】跳出循环的办法
  • Ubuntu Desktop 设置 gedit
  • HarmonyOS NEXT应用开发—图片压缩方案
  • threejs 实现鼠标大面积选取场景内3d模型,SelectionBox API 案例使用
  • 基于Spring Boot的宿舍管理系统
  • 【Linux】进程---概念---进程---优先级
  • 【Python】进阶学习:一文解决如何从指定的源目录中,挑选出符合条件的文件,并将这些文件复制到目标目录中
  • linux 日志排查
  • Legacy|电脑Windows系统如何迁移到新安装的硬盘?系统迁移详细教程!
  • 如何查看MySQL数据库的连接数
  • node后端helmet中间件
  • XML和JSON的区别
  • [C语言]指针详解一、数组指针、二维数组传参、函数指针
  • 【源码阅读】evmⅠ
  • 高通 8255 基本通信(QUP)Android侧控制方法说明
  • C++开发基础——类对象与构造析构
  • CentOS7使用Docker部署.net Webapi