算法
这个人懒得名字都没写
全栈工程师、云计算工程师、架构师、项目管理专业人士。
展开
-
Python 二分查找法
Python 二分查找法 算法要求 必须采用顺序存储结构 必须按照关键字大小有序排列 复杂度 平均时间复杂度:O(log n) 最坏时间复杂度:O(log n) 最优时间复杂度:O(1) 空间复杂度:O(1) 示例代码 def binary_search(data_list, val): """ 二分查找法/折半搜索算法/对数搜索算法 while循环方法 :param data_list: 数据列表 :param val: 查找的目标值 :ret原创 2020-06-11 10:20:37 · 25577 阅读 · 1 评论 -
Python 快速排序
Python 快速排序 基本原理: 利用递归的思想,在开始的时候选择一个基准值,大于这个基准值的数存放到一个列表中,其他值存放到另一个列表中,然后这两个列表进行递归操作。 时间复杂度为O(nlog2n),n为数组的个数。 空间复杂度为O(nlog2n)。 不稳定算法。 该图片来源于网络 快速排序 def quick_sort(array): """ 快速排序 :para...原创 2019-11-27 20:12:43 · 27104 阅读 · 0 评论 -
Python 插入排序
Python 插入排序 基本原理: 把数组看作是已经排好序的,依次从剩余数组中取出待排序的数组,和前面已经排好序的数字做对比,如果遇到比它大的就插入到最后一个比它大的数字前面。 时间复杂度为O(n^2),n为数组的个数。 空间复杂度为O(1)。 稳定算法。 该图片来源于网络 插入排序 def insertion_sort(array): """ 插入排序 :param ...原创 2019-11-27 20:10:45 · 25742 阅读 · 0 评论 -
Python 选择排序
Python 选择排序 基本原理: 从剩余待排序的数组中选择最小的数和待排序的数做对比。 时间复杂度为O(n^2),n为数组的个数。 空间复杂度为O(1)。 不稳定算法。 该图片来源于网络 选择排序 def select_sort(array): """ 选择排序 :param array: 数组 :return: 已排序的数组 """ leng...原创 2019-11-27 20:07:59 · 26727 阅读 · 0 评论 -
Python 冒泡排序
Python 冒泡排序 基本原理: 相邻的元素比较,如果前一个元素大于后一个元素,则交换位置。 第一次遍历后,最大的元素会移动到最后的位置。 第二次遍历只需要比较前len(array)-i-1个元素,因为后面的元素肯定都比前面的元素大。 时间复杂度为O(n^2) n为数组元素的个数。 空间复杂度为O(1) 因为没有创建新的数组,所以是一个稳定的算法。 该图片来源于网络 冒泡排序 ...原创 2019-11-27 20:04:30 · 25360 阅读 · 1 评论