快速排序和大o表示1快速排序递归版
defquick_sort(arr ) :
iflen(arr ) 2:
返回警报--------- -这就是基线条件
else :
a=arr[0]
smaller=[ iforiinarr [ 1: ] ifia ]
bigger=[ iforiinarr [ 1: ] ifia ]
返回quick _ sort [ small ler ] [ a ] quick _ sort [ bigger ]
2最坏情况下的时间复杂度为o(n ),平均复杂度为o ) O(nlogn ),
这里的n和logn分别表示调用堆栈的高度和到各层完成为止的时间,用a取
数组的第一个项目是最坏的情况,完成各层所需的时间为n,堆栈的高度
是n。 时间的复杂性是n。 取得中间价值时,完成各层的时间是
n,但由于调用堆栈的高度为logn,因此此时时间复杂度为nlogn
3选择排序的时间复杂性是o(n )