匹配_KMP模式匹配算法:一

匹配_KMP模式匹配算法:一

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

排序_基数排序

排序_基数排序

简述 基数排序思想,假设对数组A[p...r]排序,其中数组中所有元素都为正整数,并且不超过RADIXWITH位(有模板的RADIXWITH参数指定): 首先对A中所有元素按照个位数大小进行排序(原地的) 再对A中所有元素按照个十数大小进行排序(原地的) 一直到最后按照A中所有元...

算法特点、哈希表

算法特点、哈希表

bingliaolong Algorithm 12个月前 3 0

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

排序_归并排序

排序_归并排序

简述 归并排序思想,假设对数组A[p...r]排序: 分解 将数组A[p...r]平均划分为2子数组A[p...q-1]个A[q...r],一直划分直到每个子数组只有1个元素 归并 对 A[p...q-1]和A[q...r]这两个已排序好的数组进行合并 复杂度 时间复杂度 O(n...

动态规划相关

动态规划相关

bingliaolong Algorithm 12个月前 4 0

概述 动态规划(Dynamic Programming,简称 DP)是一种通过分解问题来解决复杂问题的算法技术,特别适用于具有最优子结构性质的问题,即问题的最优解可以由其子问题的最优解构建而成 动态规划的核心思想是将问题分解成更小的子问题,并保存这些子问题的解,避免重复计算,从而...

匹配_Rabin_karp匹配算法

匹配_Rabin_karp匹配算法

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

一些变量值交换的方法

一些变量值交换的方法

bingliaolong Algorithm 10个月前 4 0

第三个变量 实现 优点 简单易懂,逻辑清晰 缺点 需要额外的空间来存储临时变量 异或运算 实现 优点 不需要额外的空间 运算只使用基本的逻辑运算,适用于底层硬件编程 缺点 对大多数程序员来说,这种方法不如使用第三个变量的方式直观,容易引起误解 如果 a 和 b 是同一个变量,这种...

排序_堆排序

排序_堆排序

bingliaolong Algorithm 5年前 11 0

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

基础算法模板

基础算法模板

bingliaolong Algorithm 3年前 10 0

快速排序 归并排序 整数二分算法 浮点数二分算法 高精度加法 高精度减法 高精度乘低精度 高精度除以低精度 一维前缀和 二维前缀和 一维差分 二维差分 位运算 双指针算法 离散化 区间合并

扫一扫二维码分享