随笔分类 - 常用接口
摘要:做了一个问题突然想到可以用Kmp解决,所以看了一下自己之前写的关于Kmp的博客用JAVA实现的KMP匹配子串,记录一下,省的又忘了。 /* *题目描述: * 假定我们都知道非常高效的算法来检查一个单词是否为其他字符串的子串。 * 请将这个算法编写成一个函数,给定两个字符串s1和s2,请编写代码检查s
阅读全文
摘要:今天做了一道题,要用判断一个字符串是否是另一个字符串的子串,于是查了一下strstr的实现。 代码如下: 从上面的GCC中strstr实现代码可以分析出,strstr的时间复杂度是O(n2)的(因为strncmp是O(N)的),不过对长字符串匹配子串上可以采用kmp算法来提高效率(时间复杂度为O(m
阅读全文
摘要:前一段看了很多的红黑树的文章,终于对红黑树算是有了简单的理解,今天趁着可以清闲的时间抓紧写一下,文章里面的图是我先在纸上画的,然后又用visio画了一遍,我的介绍中可能还会有错误,欢迎纠正和分享经验。 一、下面先简单介绍一下红黑树: 红黑树是一棵自平衡的二叉搜索树,他具备二叉搜索树的所有性质,同时由
阅读全文
摘要:最近一直在看红黑树的相关文章,但是还是有一些地方没有研究的特别透彻,等我研究明白了应该会写一篇关于红黑树的博客,由于红黑树是一种自平衡的二叉搜索树的结构,所以先翻出很久以前自己写的一个链式的二叉搜索树的接口,为下一篇红黑树的文章做铺垫。 代码如下: 代码我写的注释比较少,而且是之前用windows下
阅读全文
摘要:脚本语言可以减少很多手动的操作,作为一个Linux程序员都应该了解简单的脚本编写来代替手动的操作,我也是很久以前学习过一段shell脚本程序编写,大概有一年多没有写过了,现在只记得一些基础的语法。 先说说我的需求,我写了一个循环队列的接口,然后写了一个测试程序来测试循环队列,现在我想让这个测试程序执
阅读全文
摘要:最近一直在看《编程珠玑》第二版这一本书,里面的东西真的很实用,以前也看过不少讲解快排的书,但是在编程珠玑上看到的讲解是我见过最好理解,也是最详细的,从效率和空间以及实现等各个方面都做了详细说明,并比较了几种变形的快排的效率,所以在这把我看到的内容写出来记录,留着以后忘了的时候看。 1.1.插入排序
阅读全文
摘要:自己实现了一个IP trie树接口. 在这里保存一下,方便备份以后使用,同时欢迎纠错和交流,希望有大神能指教更高效的算法. 1.头文件如下(iptrie.h) 2.c文件如下(iptrie.c) 3.main.c如下(测试程序) 4.Makefile (linux下编译)
阅读全文
摘要:注:树的深度优先遍历就是二叉树的先序遍历.(我写的深度优先遍历可能有点奇怪,不是按照那种一次遍历到左子树的结点那种方式写的) 下面是我用java实现的代码.
阅读全文
摘要:现在po一下C语言版本的,留作以后接口使用. 1 #include 2 #include 3 4 #define HEAP_SIZE 100 5 #define HEAP_FULL_VALUE -100 6 7 #if 0 8 /*小顶堆存储结构*/ 9 typedef struct small_heap 10 { 11 int data...
阅读全文
摘要:1 #include 2 #include 3 4 #define HEAP_SIZE 100 5 #define HEAP_FULL_VALUE -100 6 7 #if 0 8 /*小顶堆存储结构*/ 9 typedef struct small_heap 10 { ...
阅读全文
摘要:1 package com.datastruct; 2 3 import java.util.ArrayList; 4 import java.util.Arrays; 5 6 public class BigHeap { 7 8 9 10 /* 11 *交换堆中的两个元素 12 */ 1...
阅读全文
摘要:注:这里有一点需要说明,就是在删除堆中的一个元素时,如果遇到下面的情况,交换12和14两个节点元素后,14>13需要进行上移操作,来保证堆的结构。如上述代码中删除函数中所示。
阅读全文
摘要:二分查找需要注意两个问题一个是临界问题,流行的方案是左开右闭区间方式,还有一个就是当数组元素中有多个相同待查找值的应该返回第一个,下面的代码可以解决这问题,记录一下,由于最近开始用gvim编程了,请原谅我的中式英语注释。 1 /* 2 * binary search from programing...
阅读全文
摘要:1 /* 2 *binary search 3 *just return a value position equals the find but may not the first one 4 *we should caution the left open right close or left close and right close rules to not happe...
阅读全文
摘要:最近一直在优化项目中字符串匹配的问题,于是就想起了自动机,之前也看过一些文章,一直没有实现,现在项目中要用,然后又看了一些关于AC自动机的文章,这里实现了一个简单的AC自动机的小接口,我是实现自动机状态结构采用了trie树,实现起来简单一些,但在一定程度上造成空间复杂度的增加,欢迎大家纠错和一起交流
阅读全文
摘要:kmp算法是一个效率非常高的字符串匹配算法,这篇文章是我看了一篇介绍kmp的算法的其他人的博客然后自己加上了理解和新的图解和自己实现的代码完成的,原作者的博文位置我找不到了,抱歉... kmp算法完成的任务是:给定两个字符串O和f,长度分别为n和m,判断f是否在O中出现,如果出现则返回出现的位置。常
阅读全文
posted @ 2015-08-25 10:58
代码的搬运工
摘要:自己研究编了一个数组去重的函数,有好的意见或思想欢迎和我一起分享! 1 #include <stdio.h> 2 #include <string.h> 3 4 #define MAX_FRIEND 100 5 6 int repeats_num[MAX_FRIEND]; 7 8 /*升序排序*/
阅读全文
摘要:先来描述一下问题:问题描述有n小孩在比赛跳远,看谁跳的最远。每个小孩可以跳3次,这个小孩的成绩就是三次距离里面的最大值。例如,一个小孩跳3次的距离分别时10, 30和20,那么这个小孩的成绩就是30。给出每个孩子三次跳的距离,问最终每个孩子的排名是多少。问题分析:方法1: 由于原问题规模较少,只有...
阅读全文

浙公网安备 33010602011771号