算法
番茄西瓜汤
这个作者很懒,什么都没留下…
展开
-
排序算法: 初级三大算法思路与python代码演示
三大初级算法 难度 ★ 算法复杂度O(n2) 冒泡排序 ★ Bubble Sort 算法复杂度: O(n2) 思路 趟数从0开始算每一趟,列表相邻两前面比后面大则交换位置, 每一趟无序的少一个,有序的多一个数 优化: 如果一趟没有一个交换位置,那么这一趟之后就完成了 def bubble_sort(li): for i in range(len(li) - 1): # 第i趟...原创 2018-11-22 12:16:29 · 114 阅读 · 0 评论 -
排序算法: 三大中级排序算法,原理解析及用法
三大中级算法 难度 ★★ 算法复杂度O(nlogn) 一般情况下速度: 快速排序< 归并排序 < 堆排序 快速排序: 缺点极端情况下效率低 堆排序: 缺点在快的排序算法中相对慢 归并排序: 缺点要有额外内存空间 快速排序 ★★ quick Sort 算法复杂度: O(nlogn) <n乘logn> 思路 每趟取第一个元素,让列表被该元素分为两部分,左边的比他小,右边比...原创 2018-11-24 00:19:16 · 273 阅读 · 0 评论 -
算法:栈的使用、原理及案例
栈 特点:后进先出 (last-in,first-out) 进栈(压栈):push 出栈:pop 取栈顶: gettop 运用:栈进行括号匹配 class Stack: def __init__(self): self.stack = [] def push(self, element): self.stack.append(elemen...原创 2018-11-26 16:34:08 · 358 阅读 · 0 评论 -
算法:列队的原理、使用及案例
Queue 是数据集合,仅允许在列表的一端插入,另一端删除 性质:先进先出 代码实现 class Queue: def __init__(self, size=100): self.queue = [0 for _ in range(size)] self.size = size self.rear = 0 # 队尾指针 ...原创 2018-11-26 16:36:04 · 331 阅读 · 0 评论 -
算法:栈与队列的经典案例,模拟迷宫算法
模拟迷宫 # 1代表墙壁0代表通道 maze = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 1, 0, 0, 0, 1, 0, 1], [1, 0, 0, 1, 0, 0, 0, 1, 0, 1], [1, 0, 0, 0, 0, 1, 1, 0, 0, 1], [1, 0, 1, 1, 1, 0, 0, 0,...原创 2018-11-26 16:37:14 · 1162 阅读 · 1 评论 -
python中 哈希表应用,常见函数 MD5和SHA2算法
通过哈希函数计算数据存储 insert(key, value) 插入键值对 get(key) 获取值 delete(key) 删除值 常见哈希函数 除法哈希:h(k) = k % m 乘法哈希:h(k) = floor(m*(A*key%1)) 全域哈希:ha,b(k) = ((a*key+b)mod p) mod m a,b=1,2,…p-1 哈希表应用:集合与字典 字典与集合...原创 2018-11-28 00:07:30 · 1368 阅读 · 0 评论 -
基于python的 树型数据结构,二叉树使用与AVL树使用
树由n个节点组成的集合,可以递归定义数据结构,如果n=0就是空树 如果n>那么有树 概念 根节点、叶子节点 树的深度(高度) 树的度 孩子节点、父节点 子树 二叉树-遍历 # 树型图示意 E A G C F B D 前序遍历:EACBDGF 中序遍历:ABCDEGF 后...原创 2018-11-28 00:09:01 · 348 阅读 · 0 评论