
算法
小王的进阶之路
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《算法图解》- 快速排序
快速排序:最好情况下的时间复杂度: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 · 85 阅读 · 0 评论 -
《算法图解》- 递归
如果使用循环,程序的性能可能更高;如果使用递归,程序可能更容易理解。如何选择要看什么对你来说更重要。每个递归函数都有两部分:基线条件(base case)和递归条件(recursive case)。递归条件指的是函数调用自己,而基线条件则指的是函数不再调用自己,从而避免形成无限循环。def countdown(i): print(i) if i <= 0: # 基线条件 return else: # 递归条件 countdown(i-1)原创 2021-07-08 19:51:22 · 153 阅读 · 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 · 104 阅读 · 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 · 111 阅读 · 0 评论