Consolexin's blog Consolexin's blog
首页
  • 算法基础

    • 图论
    • 字符串
    • 动态规划
    • 二分
    • 滑动窗口
    • 排序
  • Project

    • CppServer
  • 相关书籍

    • 现代C++编程
  • 书籍

    • SQL必知必会
    • MySQL必知必会
分类
标签
归档
GitHub (opens new window)

Consolexinhun

小学生
首页
  • 算法基础

    • 图论
    • 字符串
    • 动态规划
    • 二分
    • 滑动窗口
    • 排序
  • Project

    • CppServer
  • 相关书籍

    • 现代C++编程
  • 书籍

    • SQL必知必会
    • MySQL必知必会
分类
标签
归档
GitHub (opens new window)
  • 图论

  • 字符串

  • 动态规划

  • 二分

  • 滑动窗口

  • 排序

    • 简单排序
    • 希尔排序
    • 归并排序
    • 快速排序
      • 堆排序
    • 算法
    • 排序
    consolexinhun
    2021-12-14
    目录

    快速排序

    笔记

    找到一个基准,使得左边的元素都比它小,右边的元素都比它大,然后再分别处理基准左边和右边的子数组

    注意

    不稳定排序

    #include<bits/stdc++.h>
    
    using namespace std;
    
    
    /**
     * 快速排序
     * */
    
    int partition(int a[], int left, int right) {
        int base = a[left];
        while(left < right) {
            while(left < right && a[right] >= base) {
                right--;
            } 
            a[left] = a[right];
            while(left < right && a[left] <= base) {
                left++;
            }
            a[right] = a[left];
        }
        a[left] = base;
        return left;
    }
    void quick_sort(int a[], int left, int right) {
        if(left >= right) {
            return ;
        }
        int k = partition(a, left, right);
        quick_sort(a, left, k-1);
        quick_sort(a, k+1, right);
    }
    
    int main() {
        int a[] = {9, 3, 1, 4, 2, 7, 8, 6, 5};
    
        int len = sizeof(a)/sizeof(a[0]);
    
        quick_sort(a, 0, len-1);
    
        for(int i = 0; i < len; i++) {
            printf("%d%c", a[i], " \n"[i==len-1]);
        }
        return 0;
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45

    # 参考链接

    快速排序 (opens new window)

    编辑 (opens new window)
    上次更新: 2025/05/21, 06:42:57
    归并排序
    堆排序

    ← 归并排序 堆排序→

    最近更新
    01
    6-其他操作
    05-20
    02
    4-联结
    05-20
    03
    7-管理
    05-20
    更多文章>
    Theme by Vdoing | Copyright © 2019-2025 Consolexinhun | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×