随笔分类 -  数据结构和算法

摘要:0. 算法简介 1. 枚举 2. 迭代 3. 递归 4. 分治 5. 动态规划 6. 贪心 7. 回溯 0. 算法简介 算法的概念 算法,简单来说就是利用计算机解决问题的步骤。狭义的来讲,算法可看作是数据传递和处理的方法,就像是各种排序算法等。算法的应用不单体现在编程中,广义的来讲,算法更像是一种事 阅读全文
posted @ 2021-03-13 17:11 Juno3550 阅读(1718) 评论(0) 推荐(1)
摘要:1. 图介绍 2. 图的数据表示法 1)邻接矩阵 2)邻接表 3)逆邻接表 4)十字链表 5)应用示例 3. 图的遍历 4. 最小成本生成树 Kruskal 算法 Prim 算法 5. 图的最短路径法 Dijkstra 算法 Floyd 算法 1. 图介绍 (本文中“图”和“图形”在数据结构的描述中 阅读全文
posted @ 2021-03-11 01:46 Juno3550 阅读(1194) 评论(0) 推荐(0)
摘要:1. 矩阵介绍 2. 矩阵相加 3. 矩阵相乘 4. 矩阵转置 1. 矩阵介绍 矩阵(matrix)是数字或字符的矩形网格(如 excel 表格),并具有加、减、乘等运算规则。 从数学的角度来看,对于 m x n 矩阵的形式,可以用计算机中的二维数组来表示。基本上,许多矩阵的运算与应用都可以使用计算 阅读全文
posted @ 2021-03-08 23:08 Juno3550 阅读(2279) 评论(0) 推荐(0)
摘要:哈希算法简介 1. 常见的哈希算法 1.1 除留余数法 1.2 平方取中法 1.3 折叠法 1.4 数字分析法 2. 碰撞与溢出问题的处理 2.1 线性探测法 2.2 平方探测法 2.3 再哈希法 2.4 链地址法 3. 哈希表的动态扩容 哈希算法简介 哈希算法又称为散列法,任何通过哈希查找的数据都 阅读全文
posted @ 2021-03-05 23:24 Juno3550 阅读(1765) 评论(0) 推荐(0)
摘要:查找算法简介 1. 顺序查找 2. 二分查找 3. 斐波那契查找 4. 插值查找 5. 分块查找 查找算法简介 查找算法也叫搜索算法,常用于判断某个数是否在数列中,或者某个数在数列中的位置。影响查找时间长短的主要因素有算法、数据存储的方式及结构。 查找和排序算法一样,如果是以查找过程中被查找的表格或 阅读全文
posted @ 2021-03-05 14:54 Juno3550 阅读(359) 评论(0) 推荐(0)
摘要:1. 树的概念 2. 二叉树与基本实现 3. 二叉查找树 1)创建二叉查找树 2)查找节点 3)插入节点 4)删除节点 5)重复数据的处理 6)遍历节点 4. 堆及堆排序 5. 平衡二叉树(AVL) 6. 红黑树 7. B 树和 B+ 树 1. 树的概念 树(Tree)是由多个节点(Node)的集合 阅读全文
posted @ 2020-04-12 21:11 Juno3550 阅读(3554) 评论(0) 推荐(0)
摘要:排序算法简介 1. 冒泡排序 2. 选择排序 3. 插入排序 4. 希尔排序 5. 快速排序 6. 归并排序 排序算法简介 排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法。 排序算法的稳定性 稳定性:稳定排序算法会让原本有相等键值的纪录维持其相对 阅读全文
posted @ 2020-04-08 23:49 Juno3550 阅读(244) 评论(0) 推荐(0)
摘要:1. 堆栈(Stack) 2. 队列(Queue) 单向队列 双向队列 优先队列 1. 堆栈(Stack) 介绍 堆栈(stack)也叫“栈”,是一种后进先出(LIFO, Last In First Out)的线性表,它的特点在于只允许在堆栈的一端(top,栈顶)进行插入数据(push)和弹出数据( 阅读全文
posted @ 2020-03-30 15:06 Juno3550 阅读(321) 评论(0) 推荐(0)
摘要:1. 链表 2. 单向链表 3. 双向链表 4. 单向循环链表 1. 链表 为什么需要链表 顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活。 链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。 链表的定义 链表(Linke 阅读全文
posted @ 2020-03-29 13:13 Juno3550 阅读(279) 评论(0) 推荐(0)
摘要:1. 线性表与顺序表 介绍 2. 顺序表的形式 3. 顺序表的结构与实现 4. 顺序表的操作 5. Python 中的顺序表 1. 线性表与顺序表 介绍 在程序中,经常需要将一组(通常是同为某个类型的)数据元素作为整体管理和使用,用变量记录它们,传进传出函数等。一组数据中包含的元素个数可能发生变化( 阅读全文
posted @ 2020-03-24 01:05 Juno3550 阅读(559) 评论(0) 推荐(0)
摘要:1. 引入:算法的提出 2. 算法的效率衡量:时间复杂度 3. 常见的时间复杂度 4. Python 内置类型性能分析 5. 数据结构 1. 引入:算法的提出 先来看一道题: 如果 a+b+c=1000,且 a2+b2=c2(a、b、c 为自然数),如何求出所有 a、b、c 可能的组合? 第一次尝试 阅读全文
posted @ 2020-03-23 00:06 Juno3550 阅读(324) 评论(0) 推荐(0)