算法
爱喝茶的程序猫
软件学菜鸟,好好地做下去
展开
-
字符串匹配之朴素匹配&KMP匹配
在众多的语言编程里面有这么一个说法,看一个语言好不好,就看这个语言操作字符串方不方便,所以足以看出在计算机语言里面,操作字符串有多么重要,暂且不去说C语言中其他操作字符串的方法怎么样,今天就来说说字符串匹配的问题。 在C语言的string.h头文件中,char* strstr(const char*str,const char* src);这个方法就能实现这个问题,那么它是怎么实现的呢?今天就来...原创 2018-02-11 14:32:30 · 294 阅读 · 0 评论 -
排序---排序算法1
冒泡排序 思想 所谓冒泡排序就是,一组数据,以递增的顺序来说明,从第一个数data[0]开始,依次和后面的数据比较大小,如果data[0]大于当前位置上的数就和这个数交换位置并继续和后面的数相比,如果遇到比自己大的数了,就不交换;下一次开始的位置是data[1],然后依次往后推。 基础代码 void myswap(int &num1,int &num2) { int n原创 2018-02-07 14:30:43 · 282 阅读 · 0 评论 -
排序---排序算法2
上一篇总结了简单的排序算法,这一篇继续。。。 堆排序 思想 堆,堆顶元素(即第一个元素)必为最小项(小顶堆)(升序序列)或者最大项(大顶堆)(降序序列)。若以一维数组存储一个堆,则堆对应一棵完全二叉树,且所有非叶结点的值均不大于(或不小于)其子女的值,根结点(堆顶元素)的值是最小(或最大)的。虽然说是一棵完全二叉树,但不是说就得根据这些数据还需要重新建立数据结构,对于一维数组有这样的规定:原创 2018-02-07 16:24:07 · 184 阅读 · 0 评论 -
打印素数(100~200)
素数 素数就是除过1和本身能被除尽之外,不能被其他数所除尽的数。 示例 打印100~200之间所有的素数。 代码 #include<stdio.h> int main() { int i = 100; for(;i<200;++i) { int j = 2; for(;j < i/2;++j) ...原创 2018-03-14 18:55:44 · 274 阅读 · 0 评论 -
斐波那契数列
题目 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39 解决方案一:递归 int Fibonacci(int n) { if(n <= 0 || n > 39) { return 0; } if(n == 1) { return 1; } ...原创 2018-03-15 20:54:33 · 231 阅读 · 0 评论