排序_堆排序

排序_堆排序

bingliaolong Algorithm 6年前 24 0

二叉堆 特性 最大堆的堆顶是整个堆中的最大元素 最小堆的堆顶是整个堆中的最小元素 每次删除旧堆顶,调整后的新堆顶都是大小仅次于旧堆顶的节点。 只要反复删除堆顶,反复调整二叉堆,所得到的集合就会成为一个有序集合。 简述 堆排序算法步骤: 把无序数组构建成二叉堆。需要从小到大排序,就...

匹配_朴素字符串匹配算法

匹配_朴素字符串匹配算法

bingliaolong Algorithm 5年前 11 0

字符串匹配 字符串匹配的形式化定义如下:假设文本是一个长度为n的数组 T[1...n],而模式是一个长度为m的数组P[1...m],其中m<=n。进一步假设P和T的元素都是来自一个有限字母集合M的字符。如M={0,1}或者M={a,b,c,...z}。 字符数组P和T通常称...

算法特点、哈希表

算法特点、哈希表

bingliaolong Algorithm 1年前 16 0

基于算法思想 比较排序 冒泡排序(Bubble Sort): 反复交换相邻的逆序元素 快速排序(Quick Sort): 通过分区交换来排序,递归地对分区进行排序 堆排序(Heap Sort): 利用堆结构进行排序,构建最大堆,然后依次将最大元素移到数组末尾 归并排序(Merge...

匹配_KMP模式匹配算法:一

匹配_KMP模式匹配算法:一

bingliaolong Algorithm 6年前 23 0

模式匹配 对子串的定位操作通常被称为串的模式匹配 简单的说,就是对主串S的每一个字符作为子串开头,与要匹配的字符串T进行匹配,对主串S做大循环,每个字符开头做T的长度的小循环,直到匹配成功或者全部遍历完成为止 朴素的模式匹配算法 KMP模式匹配算法 S串:abcdefgab T串...

数据结构_最小优先级队列

数据结构_最小优先级队列

bingliaolong Algorithm 5年前 11 0

概述 优先级队列是一种用来维护由一组元素构成集合S的数据结构,其中每个元素都有一个相关的值,称之为关键字。一个最小优先级队列支持以下操作: insert(S,x):将元素x插入到集合S中 min(S):返回S中具有最小关键字的元素 extract_min(S):去掉并返回S中具有...

贪心算法

贪心算法

bingliaolong Algorithm 1年前 16 0

概述 贪心算法(Greedy Algorithm)是一种构造性算法,用于解决最优化问题 其核心思想是在每一步选择中,都采取当前状态下最优的选择,期望通过一系列局部最优的选择达到全局最优 贪心算法在许多实际问题中非常有效,但并不是所有问题都适用 特点 局部最优选择 每一步都选择当前...

排序_插入排序

排序_插入排序

bingliaolong Algorithm 5年前 16 0

简述 插入排序思想,假设对数组A[p...r]排序: 维持不变式:设当前排序的元素是 A[q],则保持A[p...q-1]为排好的,A[q]在A[p...q-1]中找到它的位置坐下 复杂度 O(n^2) 原地排序 实现

匹配_有限自动机字符串匹配算法

匹配_有限自动机字符串匹配算法

bingliaolong Algorithm 5年前 22 0

定义 假设文本是一个长度为n的数组 T[1...n],而模式是一个长度为m的数组P[1...m],其中m<=n。进一步假设P和T的元素都是来自一个有限字母集合M的字符。如M={0,1}或者M={a,b,c,...z}。 字符数组P和T通常称为字符串。 原理 有限自动机 定义...

排序_桶排序

排序_桶排序

bingliaolong Algorithm 6年前 20 0

简述 桶排序需要创建若干个桶来协助排序。 所谓桶,每个桶bucket代表一个区间范围,里面可以承载一个或多个元素。 复杂度 名称 最好 平均 最差 空间 稳定性 桶排序 n+k n nlog(n) n 是 实现 算法导论 桶排序思想,假设对数组A[p...r]排序,首先将这些元素...

数学知识模板

数学知识模板

bingliaolong Algorithm 4年前 20 0

试除法判定质数 试除法分解质因数 朴素筛法求素数 线性筛法求素数 试除法求所有约数 约数个数和约数之和 欧几里得算法 求欧拉函数 筛法求欧拉函数 快速幂 扩展欧几里得算法 高斯消元 递归法求组合数 通过预处理逆元的方式求组合数 Lucas定理 分解质因数法求组合数 卡特兰数 NI...

扫一扫二维码分享