快速排序是冒泡排序的改进,相比冒泡排序更快更方便
冒泡排序是依次进行比较,需要很多次交换才能正确进行排序
快速排序是选定一个a值后不动,(以升序排列来讲)将比a小的值放在a左边,比他大的放在a右边,再经过递归处理后排序
def quick_sort(list,cb):
if len(list)<=1:
return list
index=len(list)//2#此处选定中间值
el=list[index]
left=[x for x in list if cb(x)<cb(el)]
right=[x for x in list if cb(x)>cb(el)]
middle=[x for x in list if cb(x)==cb(el)]
return quick_sort(left,cb)+middle+quick_sort(right,cb)
list=[12,54,67,78,88]
re=quick_sort(list,lambda x:abs(x-70))
print(re)