//rplace.c//题目:假设存在字符串“qwertyubfghsdfjjhg”,并且该字符串具有足够大的空间编写算法将其中的空格字符用“%20”代替。//要求:时间复杂度:O(n),空间复杂度:S(1)。//算法分析://要实现时间复杂度为O(n),必须采用一重循环,并且循环控制由数组长度n控制,可以采..
分类:
编程语言 时间:
2015-05-26 16:35:33
阅读次数:
210
1: JAVA经典算法40题 2: 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 3: 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... ...
分类:
编程语言 时间:
2015-05-26 12:33:53
阅读次数:
141
国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 2006年12月评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, N...
分类:
编程语言 时间:
2015-05-26 00:12:30
阅读次数:
261
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采 用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考 试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排...
分类:
编程语言 时间:
2015-05-25 16:17:18
阅读次数:
153
在计算机科学中,排序是一门基础的算法技术,许多算法都要以此作为基础,不同的排序算法有着不同的时间开销和空间开销。排序算法有非常多种,如我们最常用的快速排序和堆排序等算法,这些算法需要对序列中的数据进行比较,因为被称为基于比较的排序。基于比较的排序算法是不能突破O(NlogN)的。简单证明如下: .....
分类:
编程语言 时间:
2015-05-24 20:20:34
阅读次数:
138
归并排序是以O(NlogN)最坏情形运行时间运行,而所使用的比较次数几乎是最优的。它是递归算法的一个很好的实例。 归并排序的也遵循分治的思想。直观上其操作如下: 分解:分解待排序的n个元素的序列成各具n/2个元素的子序列。 解决:使用归并排序递归地排序两个子序列。 合并:合并两个已排序的...
分类:
编程语言 时间:
2015-05-24 12:52:30
阅读次数:
118
与归并排序一样,快速排序使用也使用了分治的思想。下面是对一个典型的子数组A[p,...,r]进行快速排序的三步分治过程: 分解:数组A[p,...,r]被划分成两个(可能为空)子数组A[P,...,q-1]和A[q+1,...,r],使得A[p,...,q-1]中每个元素都小于等于A[q],而...
分类:
编程语言 时间:
2015-05-22 21:05:52
阅读次数:
261
其实8皇后问题,很好理解,8X8的棋盘上面,放8只皇后,使他们之间不会相互攻击,具体的定义,渊源可以查看百度百科八皇后问题本科时候学数据结构的时候就接触过这个经典算法,不过当时没怎么听明白,或者说知道是个回溯的思想,却不知道该怎么实现,原谅我只是个小白。今天上振动力学的时候,闲着没事突然想到了这个问题,顺手写下了伪代码,到实验室调试一下,基本就出来了。调试过程中遇到了两个bug,在代码中已经注明了(...
分类:
编程语言 时间:
2015-05-19 14:55:32
阅读次数:
244
LDA算法入门一.LDA算法概述:线性判别式分析(LinearDiscriminantAnalysis,LDA),也叫做Fisher线性判别(FisherLinearDiscriminant,FLD),是模式识别的经典算法,它是在1996年由Belhumeur引入模式识别和人工智能领域的。性鉴别分析...
分类:
编程语言 时间:
2015-05-18 15:55:25
阅读次数:
312
回溯法的应用范围:只要能把待求解的问题分成不太多的步骤,每个步骤又只有不太多的选择就可以考虑使用回溯法。若用回溯法求问题的所有解时,要回溯到根,且根结点的所有可行的子树都要已被搜索遍才结束。 而若使用回溯法求任一个解时,只要搜索到问题的一个解就可以结束。回溯法将问题的候选解按照某一顺序逐一枚举和检验...
分类:
编程语言 时间:
2015-05-17 23:35:38
阅读次数:
141