voidquickSort(inta*,intp,intr){if(p<r){intq=partition(a,p,r);//划分quickSort(a,p,q-1);quickSort(a,q+1,r);}} 每一趟的工作量 = 子问题的工作量 + 划分的工作量(即划分的比较次数) 下图展示了n种可能的输入: 每一次划分的比较次数为 n-1,则工作量总和有: 上述工作量总和可简写为 假设...
程序中赋值语句和表达式都占一个程序步,,循环语句以for循环为例(for(<初始化语句>;<表达式1>;<表达式2>),第一次执行步数等于<初始化语句>与<表达式1>程序步数之和,后续执行的程序步数等于<表达式1>与<表达式2>的程序步数之和。快速排序中你可以根据循环次数来计算时间复杂度。
因为最多递归logn层,每层最多换n次,所以nlogn
快速排序 时间复杂度计算 https://www.cnblogs.com/fengty90/p/3768827.html