![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法&数据结构
Mr.冷小陌
这个作者很懒,什么都没留下…
展开
-
三大排序算法
冒泡排序# 当前结果是从大到小,若想从小到大排序,将a[j] < a[j+1] 改为 a[j] > a[j+1] 即可a = [1,4,2,5,22,3]n = len(a)for i in range(1,n): for j in range(n-i): if a[j] < a[j+1]: a[j],a[j+1] = ...原创 2019-11-06 18:40:49 · 144 阅读 · 0 评论 -
算法题
用Python实现效果请手写归并排序算法,并且用注释写出思路,并且指出时间复杂度def mergesort(a,b): c = [] len1 = len(a) len2 = len(b) j,i = 0, 0 while i < len1 and j < len2: if a[i] > b[j]: ...原创 2019-10-17 15:09:13 · 471 阅读 · 0 评论 -
数据结构
文章概述1. 数据结构是什么2. 数据结构与数据类型3. 数据结构与数据类型比较1. 数据结构是什么1、简单来说,数据结果就是设计数据以何种方式存储在计算机中2、比如:列表,集合,与字典等都是一种数据结构3、程序 = 数据结构 + 算法2. 数据结构与数据类型1)数据类型:说明:数据类型是一个值的集合和定义在此集合上一组操作(通常是增删改查或者操作读写的方法)的总称数据类型:int...原创 2020-03-27 18:25:57 · 215 阅读 · 0 评论 -
栈、队列、链表、数组
文章概述1. 栈2. 队列3. 链表4. 数组1. 栈1、栈的定义栈是一种数据集合,可以理解为只能在一端进行插入或删除操作的列表2、栈的特点后进先出(last-in, first-out)3、栈的概念栈顶,栈底4、栈的基本操作进栈(压栈):push出栈:pop取栈顶:gettop5、python实现栈class Stack(object): def ...原创 2020-03-25 16:38:43 · 368 阅读 · 0 评论 -
字典实现原理
文章概述1、哈希表 (hash tables)2、具体操作过程3、{“name”:”zhangsan”,”age”:26} 字典如何存储的呢?4、解决hash冲突注:字典类型是Python中最常用的数据类型之一,它是一个键值对的集合,字典通过键来索引,关联到相对的值,理论上它的查询复杂度是 O(1)1、哈希表 (hash tables)哈希表(也叫散列表),根据关键值对(Key-valu...原创 2020-03-25 16:18:06 · 1995 阅读 · 2 评论 -
二分查找&递归
文章概述1. 二分查找2. 递归1. 二分查找二分查找对1~100乱序数字查找l = list(range(1,101))def bin_search(data_set,val): low = 0 high = len(data_set) - 1 while low <= high: mid = (low+high)//2 if data_s...原创 2020-03-25 16:04:55 · 121 阅读 · 0 评论 -
时间复杂度&空间复杂度&稳定性
文章概述1. 各种算法比较2. 算法不稳定定义3. 不稳定的几种算法1. 各种算法比较2. 算法不稳定定义定义:在排序之前,有两个数相等,但是在排序结束之后,它们两个有可能改变顺序.说明:在一个待排序队列中,A和B相等,且A排在B的前面,而排序之后,A排在了B的后面.这个时候,我们说这种算法是不稳定的.3. 不稳定的几种算法1)快排为什么不稳定3 2 2 4 经过第一次快排后结果:...原创 2020-03-25 15:59:12 · 154 阅读 · 0 评论 -
快排&堆排&归排
常用算法1.快排2.堆排3.归排1.快排def quick(list): if len(list) < 2: return list tmp = list[0] # 临时变量 可以取随机值 left = [x for x in list[1:] if x <= tmp] # 左列表 right = [x for x in lis...原创 2020-03-25 15:52:53 · 215 阅读 · 0 评论 -
冒泡排序、选择排序、插入排序
常用算法1. 冒泡排序2. 选择排序3. 插入排序1. 冒泡排序原理:拿自己与上面一个比较,如果上面一个比自己小就将自己和上面一个调换位置,依次再与上面一个比较,第一轮结束后最上面那个一定是最大的数def bubble_sort(li): for i in range(len(li)-1): for j in range(len(li)-i-1): ...原创 2020-03-25 15:42:14 · 86 阅读 · 0 评论