菜鸟笔记
提升您的技术认知

快速排序-ag真人游戏

阅读 : 1497

一. 算法描述

快速排序:快速排序采用分治法进行排序,首先是分割,选取数组中的任意一个元素value(默认选用第一个),将数组划分为两段,前一段小于value,后一段大于value;然后再分别对前半段和后半段进行递归快速排序。其实现细节如下图所示:

关键问题:将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素

为方便理解我还准备了动图:

二. 算法分析

平均时间复杂度:o(nlog2n)

空间复杂度:o(n)

稳定性:不稳定

三. 算法实现

int quicksort(int s[],int start,int end)    //自定义函数 qusort()
{
    int i,j;    //定义变量为基本整型
    i=start;    //将每组首个元素赋给i
    j = end;    //将每组末尾元素赋给j
    s[0]=s[start];    //设置基准值
    while(i
网站地图