算法
这个人懒得名字都没写
全栈工程师、云计算工程师、架构师、项目管理专业人士。
展开
-
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 · 25591 阅读 · 1 评论 -
Python 快速排序
Python 快速排序基本原理:利用递归的思想,在开始的时候选择一个基准值,大于这个基准值的数存放到一个列表中,其他值存放到另一个列表中,然后这两个列表进行递归操作。时间复杂度为O(nlog2n),n为数组的个数。空间复杂度为O(nlog2n)。不稳定算法。该图片来源于网络快速排序def quick_sort(array): """ 快速排序 :para...原创 2019-11-27 20:12:43 · 27121 阅读 · 0 评论 -
Python 插入排序
Python 插入排序基本原理:把数组看作是已经排好序的,依次从剩余数组中取出待排序的数组,和前面已经排好序的数字做对比,如果遇到比它大的就插入到最后一个比它大的数字前面。时间复杂度为O(n^2),n为数组的个数。空间复杂度为O(1)。稳定算法。该图片来源于网络插入排序def insertion_sort(array): """ 插入排序 :param ...原创 2019-11-27 20:10:45 · 25751 阅读 · 0 评论 -
Python 选择排序
Python 选择排序基本原理:从剩余待排序的数组中选择最小的数和待排序的数做对比。时间复杂度为O(n^2),n为数组的个数。空间复杂度为O(1)。不稳定算法。该图片来源于网络选择排序def select_sort(array): """ 选择排序 :param array: 数组 :return: 已排序的数组 """ leng...原创 2019-11-27 20:07:59 · 26749 阅读 · 0 评论 -
Python 冒泡排序
Python 冒泡排序基本原理:相邻的元素比较,如果前一个元素大于后一个元素,则交换位置。第一次遍历后,最大的元素会移动到最后的位置。第二次遍历只需要比较前len(array)-i-1个元素,因为后面的元素肯定都比前面的元素大。时间复杂度为O(n^2) n为数组元素的个数。空间复杂度为O(1)因为没有创建新的数组,所以是一个稳定的算法。该图片来源于网络冒泡排序...原创 2019-11-27 20:04:30 · 25379 阅读 · 1 评论