无锡网站优化排名推广,知名网站建设推广,设计有关的网站,宣传 网站建设方案一#xff1a;概述 快速排序是东尼.霍尔所发展的一种快速排序算法。 对于n个项目的排序#xff0c;平均O#xff08;n*logn#xff09;次比较#xff0c;在比较糟糕的情况下是O#xff08;n2#xff09;次比较。 采用分治策略把一个串行分为两个子串行。 二#xff1a;…一概述 快速排序是东尼.霍尔所发展的一种快速排序算法。 对于n个项目的排序平均On*logn次比较在比较糟糕的情况下是On2次比较。 采用分治策略把一个串行分为两个子串行。 二步骤 从数列中挑出一个元素称为 “基准”pivot。 重新排序数列所有元素比基准值小的摆放在基准前面所有元素比基准值大的摆在基准的后面相同的数可以到任一边。在这个分区退出之后该基准就处于数列的中间位置。这个称为分区partition操作。 递归地recursive把小于基准值元素的子数列和大于基准值元素的子数列排序。 三c语言程序 四最坏下的时间复杂度 假设当划分区间的时候一个区间n-1个元素一个区间有0个元素。 并且继续假设每次递归都出现这种情况。 划分的代价是On。 对0个元素的递归T0O1。 所以估计算法的运行时间的递归TnTn-1T0OnTn-1On 可以证明TnOn2 五最快情况下的时间复杂度 划分的每个区间不能大于n/2。 一个区间为n/2,另一个为n/2-1. 这种情况下快速算法就快速的多。 Tn2T(n/2)O(n) 可以证明TnOnlgn。转载于:https://www.cnblogs.com/juncaoit/p/5935978.html