快速排序

2021-03-19 15:25

阅读:323

标签:最坏情况   最好   partition   需要   oid   sort   复杂   otp   std   

下面是快速排序的一些特征:

  • 平均时间复杂度:O(nlog2n)
  • 最坏情况:O(n^2)
  • 最好情况:O(nlog2n)
  • 平均空间复杂度:O(log2n)
  • 最坏情况:O(n)
  • 最好情况:O(log2n)
  • 是否稳定:不稳定

快速排序的一次划分会将一个元素放到排好序的最终位置上

下面是快速排序的代码:

/**
* arr  为需要排序的数组名
* low  为起始元素下标
* high 为末尾元素下标
*/
void quick_sort(int arr[], int low, int high)
{
    if (low =pivot) --high;
        arr[low] = arr[high];
        while (low

测试代码,可直接复制后编译执行:

#include 

void quick_sort(int *, int, int);
int  partitionf(int *, int, int);
void show(int *, int);

int main()
{
    int n = 4;
    int arr[] = {7, 10, 11, 9};
    quick_sort(arr, 0, n-1);
    show(arr, n);
    return 0;
}

/**
* arr  为需要排序的数组名
* low  为起始元素下标
* high 为末尾元素下标
*/
void quick_sort(int arr[], int low, int high)
{
    if (low =pivot) --high;
        arr[low] = arr[high];
        while (low

快速排序

标签:最坏情况   最好   partition   需要   oid   sort   复杂   otp   std   

原文地址:https://www.cnblogs.com/qijinzhi/p/quick_sort.html


评论


亲,登录后才可以留言!