python算法图解之快速排序(二)

选择排序的思路:

得到一个list,取出最小的值放到新的list中,并且在原list中删掉该元素。

重复操作直到取出最后一个数。


快速排序的平均时间复杂度为O(NlogN),在最糟糕情况下,快速排序的时间复杂度可能为O(n^2)




python练习:

def quicksort(array):
	if len(array)<2:
		return array
	else:
		pivot = array[0]
		print pivot
		# 使用列表生成器
		less = [i for i in array[1:] if i <= pivot]
		greater = [i for i in array[1:] if i > pivot]
		return quicksort(less) + [pivot] + quicksort(greater)

print quicksort([23,1,1,56])


你可能感兴趣的:(python算法图解之快速排序(二))