C++
MingChaoSun
潜心技术,不离不弃!
展开
-
C++ SUNDY算法(BM算法的改进)
字符串查找算法中,最著名的两个是KMP算法Knuth-Morris-Pratt)和BM算法(Boyer-Moore)。两个算法在最坏情况下均具有线性的查找时间。BM算法往往比KMP算法快上3-5倍。但是BM算法还不是最快的算法,这里介绍一种比BM算法更快一些的查找算法。例如我们要在"substringsearchingalgorithm"查找"search"第一步,把子串与文本左边对齐原创 2015-02-01 13:46:55 · 2336 阅读 · 0 评论 -
C++BM算法
BM算法是一种非常著名的字符串查找算法:在字符串查找算法中,最著名的两个是KMP算法(Knuth-Morris-Pratt)和BM算法(Boyer-Moore)。两个算法在最坏情况下均具有线性的查找时间。但是在实用上,KMP算法并不比最简单的c库函数strstr()快多少,而BM算法则往往比KMP算法快上3-5倍。下面我们介绍一下BM算法:1,BM算法是Boyer-Moore算原创 2015-02-01 11:42:22 · 6758 阅读 · 3 评论 -
C++ KMP 算法
KMP算法是一种改进的字符串匹配算法,由D.E.Knuth与V.R.Pratt和J.H.Morris同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法).KMP算法的关键是根据给定的模式串W1,m,定义一个next函数,next函数包含了模式串本身局部匹配的信息.#include #include #include #include #include原创 2015-02-01 14:27:50 · 1483 阅读 · 0 评论 -
n个整数全排列的递归实现(C++)
全排列是非常常用的一个小算法,下面是n个整数全排列的递归实现,使用的是C++#include using namespace std;int n = 0;void swap(char *a ,char *b){ int m ; m = *a; *a = *b; *b = m;}void perm(char list[],int k, int m ){ int原创 2014-10-27 09:58:49 · 7045 阅读 · 0 评论 -
C++ 算法大全
第3章 控制语句 /* 1、打印出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153 = 13 + 53 + 33。 */ #include void main() { int i, a=0, b=0, c=0; for(i=100;i{ a=i%10; b=i/10%10; c=i/1转载 2014-09-16 00:29:57 · 9608 阅读 · 2 评论 -
C++ 递归位置排列算法及其应用
废话不多说,我们先看一下位置排序的算法:#include using namespace std; int n = 0; int m = 2; int l = 0; int a[100]; void solve(int l);int main(){ cout<<"请输入位数 n "<<endl; cin>>n; solve(l); return 0;}原创 2014-09-19 13:39:58 · 1278 阅读 · 0 评论 -
经典的7种排序算法 原理C++实现
经典的7种排序算法 原理C++实现排序是编程过程中经常遇到的操作,它在很大程度上影响了程序的执行效率。7种常见的排序算法大致可以分为两类:第一类是低级排序算法,有选择排序、冒泡排序、插入排序;第二类是高级排序算法,有堆排序、排序树、归并排序、快速排序。下面就分别介绍一下这几种排序算法,并会给出c++的实现,实现代码均经过测试。一、低级排序算法1. 选择排序排序过程:给定一个原创 2014-09-19 12:24:12 · 14757 阅读 · 2 评论