![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
小王的进阶之路
这个作者很懒,什么都没留下…
展开
-
《算法图解》- 快速排序
快速排序: 最好情况下的时间复杂度:O(nlog2nnlog_2nnlog2n); 最坏情况下的时间复杂度:O(n2n^2n2); 平均情况下的时间复杂度:O(nlog2nnlog_2nnlog2n); 空间复杂度:O(nlog2nnlog_2nnlog2n); 稳定性:不稳定。 def quicksort(array): if len(array) < 2: return array # 基线条件:为空或只包含一个元素的数组是有序的 else:原创 2021-07-10 18:20:32 · 51 阅读 · 0 评论 -
《算法图解》- 递归
如果使用循环,程序的性能可能更高;如果使用递归,程序可能更容易理解。如何选择要看什么对你来说更重要。 每个递归函数都有两部分:基线条件(base case)和递归条件(recursive case)。 递归条件指的是函数调用自己,而基线条件则指的是函数不再调用自己,从而避免形成无限循环。 def countdown(i): print(i) if i <= 0: # 基线条件 return else: # 递归条件 countdown(i-1)原创 2021-07-08 19:51:22 · 86 阅读 · 0 评论 -
《算法图解》- 选择排序
选择排序,平均时间复杂度:O(n2) ; 最坏时间复杂度:O(n2); 空间复杂度:O(1); 是否稳定:不稳定 # 找出数组中最小的数 def findSmallest(arr): smallest = arr[0] smallest_index = 0 for i in range(1, len(arr)): if arr[i] < smallest: smallest = arr[i] smallest_in原创 2021-07-08 18:13:37 · 68 阅读 · 0 评论 -
《算法图解》- 二分查找
这里写目录标题1. 二分查找1.1 二分查找代码 1. 二分查找 二分查找是一种算法,其输入是一个有序的元素列表。如果要查找的元素包含在列表中,二分查找返回其位置;否则返回 null。 一般而言,对于包含 n 个元素的列表,用二分查找最多需要 log2n 步,而简单查找最多需要 n 步。 1.1 二分查找代码 # 二分查找 def binary_search(list, item): low = 0 high = len(list) - 1 while low <= high:原创 2021-06-30 22:19:03 · 77 阅读 · 0 评论