简单算法
ChauncyChen
这个作者很懒,什么都没留下…
展开
-
BF算法(Brute Force)
算法思想:运用模式串和目标串进行逐个比较,当模式串匹配失败,则回溯到目标串的下一位,两个循环直到匹配成功或者跳出循环查找失败。#include <iostream>#include<cstring>using namespace std;#define MAXSIZE 250typedef char STR[MAXSIZE + 1];int assign(STR T, char *c)//T原创 2017-04-10 17:08:03 · 450 阅读 · 0 评论 -
KMP算法
KMP由来:由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,故取三人名字首字母简称为KMP算法。 算法思想:将在模式串中失配部分的信息再利用,避免在目标串上回溯,使匹配一直在目标串(查找的范围)上进行下去,效率比之回溯的BF算法更为高效。 难点:由算法思想转为代码,计算next函数值以及理解引入next函数的必要性。 拓展:对KMP算法的优化,思考是否可以在此基础上再提原创 2017-04-10 17:22:44 · 285 阅读 · 0 评论 -
排序算法之冒泡算法
冒泡算法思想:根据词义就很好理解,相邻的逐个比较上浮,即冒泡。#include<iostream>using namespace std;#define SIZE 8void Bubble_sort(int arr[], int size){ int tmp = 0; for(int i=0;i<size;++i) for (int j = i + 1; j <原创 2017-04-11 17:05:05 · 205 阅读 · 0 评论 -
排序算法之选择排序
选择排序思想:每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。该序列用数组表示。#include<iostream>using namespace std;#define SIZE 8void Select_sort(int arr[], int size){ for (int i = 0; i < size; ++i)原创 2017-04-11 17:27:29 · 265 阅读 · 0 评论 -
排序算法之插入排序
插入排序是指在已经是有序排列的一组数里再插入另外的数值,从而得到一个全新的有序排列数。其中可用直接插入和二分查找。(此处按照从小到大排序)直接插入思想:先确定需要插入的元素temp=arr[i],然后开始查找是否存在满足大于该元素的值arr[j],若每次都从j=0到j=i-1,有点麻烦,可以 从有序序列的最后一个元素(j=i-1)开始查找,边查找边移动元素提高了效率,若temp>=arr[j-1]原创 2017-04-11 22:42:18 · 311 阅读 · 0 评论