快速排序(代码及其分析)

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;

 const  int N = 100010;
 
    int a[N];
    
int Partition(int q[],int low,int high)
{
    int pivot=q[low];
    while(low<high)
    {
    while(low<high&&q[high]>=pivot) high--;
    q[low]=q[high];
    while(low<high&&q[low]<=pivot) low++;
    q[high]=q[low];
    }
    q[low]=pivot;
    return low;
}


void QuickSort(int q[],int low,int high)
{
    if(low<high)
    {
    int pos=Partition(q,low,high);
    QuickSort(q,low,pos-1);
    QuickSort(q,pos+1,high);
    }
   
}


int main()
{
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    QuickSort(a,0,n-1);
    for(int i=0;i<n;i++)
    {
        printf("%d ",a[i]);
    }
    
}

最好时间复杂度O

空间复杂度O

平均时间复杂度O****

最坏时间复杂度O(n*2)

不稳定

相关推荐
ghie90909 分钟前
线性三角波连续调频毫米波雷达目标识别
人工智能·算法·计算机视觉
却话巴山夜雨时i11 分钟前
74. 搜索二维矩阵【中等】
数据结构·算法·矩阵
sin_hielo16 分钟前
leetcode 3512
数据结构·算法·leetcode
_F_y18 分钟前
二分:二分查找、在排序数组中查找元素的第一个和最后一个位置、搜索插入位置、x 的平方根
c++·算法
Elias不吃糖18 分钟前
LeetCode--130被围绕的区域
数据结构·c++·算法·leetcode·深度优先
烛衔溟19 分钟前
C语言算法:动态规划基础
c语言·算法·动态规划·算法设计·dp基础
ouliten19 分钟前
C++笔记:std::priority_queue
c++·笔记
cookies_s_s21 分钟前
项目--协程库(C++)模块解析篇
服务器·c++
止观止25 分钟前
C++20 Modules:终结“头文件地狱”的曙光
c++·c++20·头文件·modules·编译优化