数据结构与算法
文章平均质量分 80
各种基础算法讲解
芜湖男童
哎,你会不会觉得我很菜,因为你不会,所以你会,这是一个哲学!
展开
-
第一章:基础算法
基础算法1. 快速排序-分治确定分界点:第一个,中间,最后一个,随机一个调整区间/重新划分区间 left <= x < right递归处理左右两段区间快速排序算法模板void quick_sort(int q[], int l, int r){ if (l >= r) return; int i = l - 1, j = r + 1, x = q[l + r >> 1]; while (i < j) {原创 2022-02-25 19:01:50 · 963 阅读 · 0 评论 -
2. 数据结构常用代码模板
数据结构转载 2022-05-20 09:36:39 · 396 阅读 · 0 评论 -
3. 搜索与图论常用代码模板
搜索与图论转载 2022-05-20 09:41:49 · 121 阅读 · 0 评论 -
分治法之二分搜索
分治法之二分搜索,合并排序,快速排序**二分搜索法**二分合并排序功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入二分......原创 2019-03-23 20:08:45 · 667 阅读 · 0 评论 -
数据结构之堆
数据结构-堆原创 2022-12-06 17:18:02 · 1150 阅读 · 0 评论 -
数据结构之并查集
主要概念:1.将两个集合合并2.询问两个元素是否在一个集合当中复杂度近乎O(1)基本原理:每个集合用一棵树来表示。树根的编号就是整个集合的编号。每个节点存储它的父节点,p[x]表示x的父节点问题1:如何判断树根: if (p[x] == x)问题2:如何求x的集合编号:while(p[x] != x) x = p[x];问题3:如何合并两个集合:px是x的集合编号,py是y的集合编...原创 2019-09-19 23:35:11 · 141 阅读 · 0 评论 -
数据结构之链表
单链表https://www.acwing.com最近学到了一个新的表示链表的方法,用数组模拟表示单链表,开辟两个数组,一个用来存储数据,另外一个用来存储指针的值,此方法比结构体表示单链表的优点在于快速。下面我们用图形表示这种方法,首先需要开辟两个数组e[ ],ne[ ],来存储我们的数据和指针:从图中我们可以看到需要有 -1来表示数数组指针的结束。另外需要有一个idx来表示我们的下一个...原创 2019-07-26 22:22:09 · 195 阅读 · 0 评论 -
KMP Algorithm for Pattern Searching
算法介绍KMP全称为Knuth Morris Pratt算法,三个单词分别是三个作者的名字。KMP是一种高效的字符串匹配算法,用来在主字符串中查找模式字符串的位置(比如在“hello,world”主串中查找“world”模式串的位置)。栗子:给定一个目标穿txt[0…n-1]和模式串pat[0…m-1],输出模式串在文本串中的位置;Input: txt[] = "THIS IS A TEST TEXT" 012345678910 pat[] = "TEST"Output原创 2021-03-14 14:06:12 · 182 阅读 · 0 评论