python排序算法-冒泡和快速排序,解答阿里面试题

''常见的排序算法

插入排序/希尔排序/直接排序/堆排序
冒泡排序/快速排序/归序排序/基数排序


给定一个列表,将这个列表进行排序,要求:> 时间复杂度要小于O(n^2)

复杂度:
1.时间复杂度: 指 算法在计算的过程中,所需要的计算工作量
2.空间复杂度: 指 算法在计算过程中,所需要的内存空间

常见的时间复杂度:
常数阶O(1),对数阶O(log2n),线性阶O(n)
线数对数阶O(nlogn2n),平方阶O(n^2),立方阶O(n^3)
随着问题的规模n,不断的增大,上述的时间复杂度就不断增大
意味着算法的执行效率越低

'''
#冒泡排序的实现
#思路: 相邻的两个数字比较,大的向下沉,最后一个元素是最大的
#时间复杂度O(n^2)


#快速排序
#递归+推导式
# 列表中取出第一个元素,作为标准.把比第一个元素小的都放在左边
# 把比第一个元素大的,都放在右侧
# 递归完成时,就是排序结束的时候

# 快排的时间复杂度 O(nlong2n)

原文地址:https://www.cnblogs.com/goddog1024/p/11146599.html