package org.loda.string;
import org.junit.Assert;
/**
*
* @ClassName: NaiveStringMatcher
* @Description: 朴素字符串查找
*
* text:abcabaabcabac
* pattern:abaa...
分类:
编程语言 时间:
2015-07-13 12:28:20
阅读次数:
138
2.2-1:Θ (n3)2.2-2:插入排序void selectionSort(int a[], int n){ int i, j, k, key; for(i=0; i a[j]) k = j; if(k != i) { key = ...
分类:
编程语言 时间:
2015-07-12 18:45:15
阅读次数:
163
本系列博客主要为练习《算法导论》的记录,由于水平有限,错误在所难免。但是,我一定尽力消除。另外, 欢迎大家指出错误,提出宝贵的建议,感谢大家的指点和帮助。 在开始之前,对各练习的程序作出统一说明,以后不再重复。 一 程序一般用C语言写,编译为GCC。 二 程序一般为子程序的形式,不提供调用主程序,....
分类:
编程语言 时间:
2015-07-11 18:17:49
阅读次数:
114
关于练习程序的说明参见置顶的那篇。2.1-1:31 41 59 26 41 5831 41 59 26 41 5831 41 59 26 41 5826 31 41 59 41 5826 31 41 41 59 5826 31 41 41 58 592.1-2:#include void inver...
分类:
编程语言 时间:
2015-07-11 18:06:40
阅读次数:
118
普通情况下,一元n次多项式可写成:当中,pi是指数为ei的项的非零系数,且满足watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGVuZ3dlaXR3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve...
分类:
编程语言 时间:
2015-07-09 19:26:02
阅读次数:
233
算法定义: 描述一个特定的计算过程来实现输入输出关系 ps:通俗的说就是对给定的输入数据进行计算,得到一个正确的输出、 既然是一个过程吗,那么有效率问题,比如我们算1..n的和, 我们可以这样 sum = 1+2+..+n 也可以这样 sum = n(1+n)/2 实际表现为时间复杂度和空间复杂度 ...
分类:
编程语言 时间:
2015-07-09 00:35:42
阅读次数:
125
6.1 堆## 6.1-1 ##
在高度为h的堆中,最多元素为2 ^(h+1)-1 个,最少元素有 2^h+1 个## 6.1-3 ##
最大堆的特性是除了根结点外的每个结点都有A[PARENT(i)]>=A[i]故,在一个最大堆的某颗子树中最大元素必然位于该子树的根上。## 6.1-4 ##
根据最大堆的性质,任何子树的子结点都小于根节点,故整棵树的最小元素必然位于堆的最底层或者倒数第二层的叶子...
分类:
编程语言 时间:
2015-07-08 22:37:48
阅读次数:
166
一、选择最大值或者最小值的最优算法
对于长度为n的数组,已证找最大值或者最小值比较操作下界就是n-1。所以只需要让第一个值为初始最大值或者初始最小值,用所有的值与这个值比较,更新这个值即可。def minimum(a):
minNum=a[0]
for i in range(1,len(a)):
if minNum>a[i]:
minNum=...
分类:
编程语言 时间:
2015-07-08 00:34:54
阅读次数:
160
1 序在很多应用中,都要用到一种动态集合结构,它仅支持INSERT、SEARCH以及DELETE三种字典操作。例如计算机程序设计语言的编译程序需要维护一个符号表,其中元素的关键字为任意字符串,与语言中的标识符相对应。实现字典的一种有效数据结构为散列表。
散列表是普通数组的推广,因为可以对数组进行直接寻址,故可以在O(1)的时间内访问数组的任意元素。对于散列表,最坏情况下查找一个元素的时间与在链表中...
分类:
编程语言 时间:
2015-07-07 17:00:31
阅读次数:
131