版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/heqiang525/article/details/84097523
1、算法复杂度
算法复杂度分为时间复杂度和空间复杂度。其中, 时间复杂度是指执行算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。
算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间资源,因此复杂度分为时间和空间复杂度。用大O表示。
常见的时间复杂度(按效率排序)
2、冒泡排序
冒泡法:第一趟:相邻的两数相比,大的往下沉。最后一个元素是最大的。
第二趟:相邻的两数相比,大的往下沉。最后一个元素不用比。
时间复杂度:O(n^2)
稳定性:稳定
改进:如果一趟比较没有发生位置变换,则认为排序完成
1 def bubble_sort(array):
2 for i in range(len(array)-1):
3 current_status = False
4 for j in range(len(array) - i -1):
5 if array[j] > array[j+1]:
6 array[j], array[j+1] = array[j+1], array[j]
7 current_status = True
8 if not current_status:
9 break
2018年11月15日,南京