acwing算法基础之基础算法--快速排序

news/2024/5/19 21:47:51 标签: 算法, 快速排序

目录

1 知识点

排序算法

  • 快速排序
    算法关键步骤:
    step1:确定分界点。
    step2:调整位置,使得分界点左边元素都小于等于分界点,分界点右边元素都大于等于分界点。可以使用双指针算法来实现此步骤。
    step3:递归处理左边和右边。
  • 归并排序

二分算法

  • 整数二分:
    存在边界情况,容易得到错误的解或进入死循环。
  • 浮点数二分:
    正常求解即可,比较容易处理。

2 算法模板

//对向量类容器nums中下标在[l,r]范围内元素进行排序
void quick_sort(vector<int>& nums, int l, int r) {
    if (l >= r) return;
    
    int x = nums[l + r >> 1];
    int i = l - 1; //因为下文中使用的是do...while...语句,循环块肯定会被执行一次,故先构造出初始状态
    int j = r + 1;
    
    while (i < j) {
        do i++; while(nums[i] < x);
        do j--; while(nums[j] > x);
        if (i < j) {
            swap(nums[i], nums[j]);
        }
    }
    quick_sort(nums, l, j);
    quick_sort(nums, j + 1, r);
    return;
} 

http://www.niftyadmin.cn/n/5052281.html

相关文章

19c-srvctl注册数据库

节点一操作-oracle用户 mkdir -p /u01/app/oracle/diag/rdbms/orcl/orcl1/{incident,incpkg,ir,lck,metadata,metadata_dgif,metadata_pv,sweep,stage,trace} mkdir -p /u01/app/oracle/admin/orcl/{adump,dpdump,hdump,pfile} 节点二操作-oracle用户 mkdir -p /u01/app…

香港纺织业现状

香港纺织业在2021年拥有230家制造工厂和1,510名工人&#xff0c;占当地制造业劳动力的1.6%。然而&#xff0c;传统市场如美国、欧盟和日本逐渐向东盟、孟加拉等发展中国家的纺织品出口商提供了优惠市场准入&#xff0c;导致香港制造商竞争力下降。同时&#xff0c;中国内地劳动…

Cloudflare进阶技巧:缓存利用最大化

1. 引言 cloudflare我想你应该知道是什么&#xff0c;一家真正意义上免费无限量的CDN&#xff0c;至今未曾有哥们喷它的。当然&#xff0c;在国内的速度确实比较一般&#xff0c;不过这也不能怪它。 CDN最大的特色&#xff0c;我想就是它的缓存功能&#xff0c;达到防攻击&am…

ElasticSearch - 基础概念,以及和 mysql 的对比

目录 一、ElasticSearch 基础概念 1.1、文档&#xff08;document&#xff09; 1.2、索引&#xff08;index&#xff09; 1.3、映射&#xff08;mapping&#xff09; 二、对比 mysql 2.1、概念对比 2.2、适用场景对比 2.2.1、那是不是说&#xff0c;有了 es 之后&#…

Python机器学习实战-特征重要性分析方法(4):相关性分析(附源码和实现效果)

实现功能 计算各特征与目标变量之间的相关性。相关性越高的特征越重要。 实现代码 import pandas as pd from sklearn.datasets import load_breast_cancer import matplotlib.pyplot as pltX, y load_breast_cancer(return_X_yTrue) df pd.DataFrame(X, columnsrange(30)…

软件安全复习材料自用版本

名词解释 SQ&#xff1a;软件质量 SQA&#xff1a;软件质量保证 SA&#xff1a;软件保障 SDS&#xff1a;软件定义安全 VPN&#xff1a;虚拟专用网 0day漏洞&#xff1a;已被发现但是官方还没有补丁的漏洞 1day漏洞&#xff1a;官方发布补丁后大部分用户还未打补丁时的漏…

java8新特性-Optional

介绍常用的Optional方法 Optional Optional.ofNullableOptional.ofOptional.isPresentOptional.orElseOptional.get使用案例 Optional.ofNullable 允许传递为 null 参数 Optional.of 如果传递的参数是 null&#xff0c;抛出异常 NullPointerException Optional<String&g…

9.26 牛客Java题库day 3

1.类变量&#xff08;static&#xff09;在不设置初始值时,会进行默认值赋值&#xff0c;而局部方法中声明的变量则必须进行初始化&#xff0c;它不会进行默认值赋值 2.了解forward,redirect: URL:统一资源定位符&#xff0c;又是也被俗称为网页地址 http://www.runoob.com/…