算法快速排序

Posted Coder的自我修养

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法快速排序相关的知识,希望对你有一定的参考价值。

C++快速排序的函数

 
   
   
 
  1. #include<iostream>

  2. using namespace std;

  3. void QuickSort(int *array,int length){

  4.    //中止条件

  5.    if(length<=1)

  6.        return;

  7.    //设定最坏的可能,为两个子数组分配空间

  8.    int *left=new int[length],*right=new int[length];

  9.    //设定两个子数组的长度初值为零

  10.    int left_idx=0,right_idx=0;

  11.    //拆分,要求左半部分不大于参照元素

  12.        //设定第一个元素为参照元素

  13.    int key=array[0];

  14.    int i;

  15.    for(i=0+1;i<length;i++){

  16.        if(array[i] <= key)

  17.            left[left_idx++]=array[i];

  18.        if(array[i] > key)

  19.            right[right_idx++]=array[i];

  20.    }

  21.    //对子数组排序

  22.    QuickSort(left,left_idx);

  23.    QuickSort(right,right_idx);

  24.    //合并数组

  25.    int idx=0;

  26.    for(i=0;i<left_idx;i++){

  27.        array[idx++]=left[i];

  28.    }

  29.    array[idx++]=key;

  30.    for(i=0;i<right_idx;i++){

  31.        array[idx++]=right[i];

  32.    }

  33.    //释放空间

  34.    delete[] left;

  35.    delete[] right;

  36. }

  37. int main(){

  38.    int test[]={4,3,1,2,4,5,8,7,3,6,9,321};

  39.    int i;

  40.    QuickSort(test,12);

  41.    for(i=0;i<12;i++){

  42.        cout<<test[i]<<' ';

  43.    }

  44. return 0;}

我的微信公众号


以上是关于算法快速排序的主要内容,如果未能解决你的问题,请参考以下文章

一行Python代码搞定快速排序算法

排序算法 | 快速排序(含C++/Python代码实现)

交换排序(冒泡排序快速排序的算法思想及代码实现)

快速排序/快速选择算法

快速排序算法详解及代码实现

排序算法——快速排序的图解代码实现以及时间复杂度分析