零 导言  软件安全课上,老师讲了AC算法,写个博客,记一下吧。  那么AC算法是干啥的呢?  ——是为了解决多模式匹配问题。换句话说,就是在大字符串S中,看看小字符串s1, s2,...有没有出现。  AC算法的时间复杂度是线性的,思路非常巧妙,也挺好理解的。但是有些的对于AC算法的介绍,挺难看懂的。这是因为原始的AC算法,会存在内存占用过多的问题,因为我们引入了”双数组“的方法来减少
                   聚类分析中存在一种方法:‘模糊C均值’,模糊C均值的发现,要感谢模糊数学之父“扎德”老爷子,他老人家当年提出了“模糊集合论”和“模糊逻辑”,介绍算法之前,先简单的补充一些相关的知识点.&nbs
转载 2023-07-24 15:30:59
70阅读
一、  数据结构和算法关系为什么要学数据结构和算法?通常,计算机解决问题的步骤如下: 在数学模型中,计算机处理的对象之间通常存在着一种最简单的线性关系,这类数学模型就是线性的数据结构。著名计算机科学家沃斯(Nikiklaus Wirth)提出一个公式:程序=数据结构+算法。数据结构就是编程的思维,编程的灵魂,算法的精髓所在,没有了数据结构,程序就好像一个空核,是低效率的。算法
君主和殖民者们所成功运用的分而治之策略也可以运用到高效率的计算机算法的设计过程中。本章将首先介绍怎样在算法设计领域应用这一古老的策略,然后将利用这一策略解决如下问题:最小最大问题、矩阵乘法、残缺棋盘、排序、选择和计算一个几何问题——找出二维空间中距离最近的两个点。 本章给出了用来分析分而治之算法复杂性的数学方法,并通过推导最小最大问题和排序问题的复杂性下限来证明分而治之算法对于求解这两种问题是最
转载 精选 2010-07-19 13:35:12
1195阅读
C#算法 希尔排序 希尔排序是将组分段,进行插入排序.对想提高C#语言编程能力的朋友,我们可以互相探讨一下。如:下面的程序,并没有实现多态,来,帮它实现一下。 using System;public class ShellSorter{  public void Sort(int [] list)  {     
转载 2009-02-05 11:54:53
738阅读
1点赞
错题详解int main(){ int i = 0; int arr[10] = { 0,1,2,3,4,5,6,7,8,9 }; for (i = 0;i <= 12;i++) { arr[i] = 0; printf("hehe\n"); } return 0;}错误原因:数组地址指向了数组的外面无限循环的原因:i创建在了arr的高位,arr往高位读取,将i里面的
原创 精选 2021-11-30 18:04:33
1233阅读
KMP串匹配算法是一个经典的算法。传统BF算法是传统的字符串匹配算法。很好理解。叶实现。但时间复杂度太高。本文将从字符串模式字符串被称为。为了匹配字符串被称为主弦。KMP配时能够少移动从串的位置,从而保持主串的索引不移动。1 原理如上图所看到的,假设在从串中有A=B,然后在匹配的时候,发现B后面的字...
转载 2015-10-23 13:43:00
154阅读
2评论
在贪婪算法(greedy method)中采用逐步构造最优解的方法。在每个阶段,都作出一个看上去最优的决策(在一定的标准下)。决策一旦作出,就不可再更改。作出贪婪决策的依据称为贪婪准则(greedy criterion)。 例1-4 [找零钱] 一个小孩买了
转载 2010-08-11 16:38:05
1637阅读
C++ 算法 算法概念 算法是特定问题求解步骤的描述 在计算机中表现为指令的有限序列 算法是独立存在的一种解决问题的方法和思想。 对于算法而言,语言并不重要,重要的是思想。 算法和数据结构区别 数据结构只是静态的描述了数据元素之间的关系 高效的程序需要在数据结构的基础上设计和选择算法 程序=数据结构
快速排序算法#include <algorithm>#include <iostream>#include <cstdlib>#include <ctime>using namespace std;int a[100005];v
原创 2022-11-17 00:31:35
20阅读
前言EM 算法,全称 Expectation Maximization Algorithm。期望最大算法是一种迭代算法,用于含有隐变量(Hidden Variable)的概率参数模型的最大似然估计或极大后验概率估计。它是一个基础算法,是很多机器学习领域算法的基础,比如隐式马尔科夫算法(HMM), LDA 主题模型的变分推断等等。一、EM算法的思想我们经常会从被观察的样本数据中,找出样本的模型参数。
C程序设计的常用算法 C程序设计的常用算法 算法(Algorithm):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。   一、计数、求和、求阶乘等简单算法   此类问题
c语言程序设计 算法初步第3讲 算法初步 一、解题方法 二、算法举例---穷举法 三、算法举例---递推与迭代法 四、良好的编程风格 一、解题方法 分析问题,想出策略;自顶向下,逐步求精。 例如,编写一个通讯录程序 通讯录需要存储什么数据?存在什么地方? 程序的功能 输入一个新名字 删除一个名字 显示整个通讯录 搜索一个名字 进入、退出程序等 ……。具体到每一项功能 菜单,将这些功能分类别设计 用
#include double factorial(unsigned int i) { if(i <= 1) { return 1; } return i * factorial(i - 1); } int main() { int i = 15; printf("%d 的阶乘为 %f\n", i, factorial(i)); ...
转载 2018-10-20 17:48:00
116阅读
#include <iostream>#include <string>#include <vector>#include <algorithm>int main(){ std::vector<std::string> names; names.push_back("xjy"); names.push_back("lxx"); names.push_back("ajy"); n...
原创 2021-12-30 16:00:33
202阅读
文章介绍了几种常用的排序,包括其实现思路与具体代码实现。
原创 精选 7月前
659阅读
1点赞
数据加密标准(Data Encryption Standard,DES)是一种对称密钥加密算法,是信息安全领域的经典之作。本文将深入探讨DES算法的概述、特点、原理,以及提供C语言和C++语言实现DES算法的代码案例。一、DES算法概述DES算法是一种对称密钥加密算法,由IBM于1977年开发并于1977年被美国标准局(NIST)正式采纳为联邦信息处理标准(FIPS PUB 46)。DES算法
原创 10月前
2104阅读
1评论
1. HMAC算法概述HMAC,全称为HMAC-MD5、HMAC-SHA1、HMAC-SHA256等,是一种在数据传输中验证完整性和认证来源的方法。它结合了哈希函数和密钥,通过在数据上应用哈希函数,生成一个带密钥的散列值,用于验证数据的完整性。HMAC算法广泛应用于网络协议、数字签名、认证和访问控制等领域。2. HMAC算法特点安全性高: HMAC算法提供了高级别的安全性,因为它依赖于强大的哈希函
原创 10月前
2393阅读
概述RSA算法是一种广泛应用于数据加密与解密的非对称加密算法。它由三位数学家(Rivest、Shamir和Adleman)在1977年提出,因此得名。RSA算法的核心原理是基于大素数的数学问题的难解性,利用两个密钥来完成加密和解密操作。特点RSA算法的特点如下:非对称性:RSA算法使用一对公钥和私钥,其中公钥用于加密,私钥用于解密。这种非对称性使得通信双方可以安全地交换信息,而不需要共享密钥。安全
原创 10月前
2481阅读
概述博文的一,二部分为基础知识的铺垫。分别从密码学,数论两个方面为理解RSA算法做好了准备。第三部分是对RSA加密过程的具体介绍,主要涉及其密钥对(key-pair)的获取。前三个部分与编程实践无关,可以当作独立的关于RSA加密算法的介绍。第四部分开始介绍在编程层面实现RSA算法的基础知识,主要涉及一些算法,如拓展欧几里得算法,米勒-拉宾素性检验算法,是为C++中实现RSA加密所作的铺垫。第五部分
  • 1
  • 2
  • 3
  • 4
  • 5