题目取自:《数据结构与算法分析:C语言描述_原书第二版》——Mark Allen Weiss练习1.5(a) 证明下列公式: logX 0 成立。(注意:计算机科学中,若无特别说明,所有对数都是以2为底的) 这个小题,看似简单。乍一看一高中证明题而已嘛。实则不然,我根据高中时常用的思路解了一下:.....
分类:
其他好文 时间:
2014-12-01 00:45:04
阅读次数:
424
一、数据结构基本概念1. 数据:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。2. 数据元素:数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。一个数据元素可由若干个数据项组成。数据项是数据的不可分割的最小单位。3. 数据对象...
分类:
编程语言 时间:
2014-11-29 11:41:13
阅读次数:
172
KMP是一种复杂度较低的字符串比较算法。基本思路是对欲匹配字符串进行预处理,分析当k位匹配时可以后移的位数,所得的数构成该字符串的特征向量。求特征向量Next 1 int* Next(string p){ 2 int m=p.length(); 3 int *N=new int[m]; 4...
分类:
编程语言 时间:
2014-11-26 15:49:23
阅读次数:
214
想在技术的道路上走得远,必须有扎实的计算机基础。下面按照学习的先后顺序给出一些推荐的好书:编程语言《C程序设计语言》、离散数学《离散数学及其应用》、数据结构《数据结构与算法分析 C语言实现》、组成原理《深入理解计算机系统》(CSAPP)、操作系统《现代操作系统》、编译原理《编译原理》(龙书)、软件工程《计算机程序的构造和解释》(SICP)...
分类:
其他好文 时间:
2014-11-25 14:33:26
阅读次数:
263
一、问题描述 给定一个正整数n,请计算n的阶乘n!末尾所含有“0”的个数。例如:5!=120,其末尾所含有的“0”的个数为1;10!= 3628800,其末尾所含有的“0”的个数为2;20!= 2432902008176640000,其末尾所含有的“0”的个数为4。二、算法分析 此类问题很显然属.....
分类:
其他好文 时间:
2014-11-23 20:09:28
阅读次数:
188
1.交换排序—冒泡排序(BubbleSort)
基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
算法分析:如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次相邻元素的两两比较,在第j趟比较中要进行n-j次两两比较。比...
分类:
编程语言 时间:
2014-11-21 21:58:59
阅读次数:
262
1.3 编写一个输出任意double类型的数值(可以使负数,只能用I/O的printDigit)#include using namespace std;void printInt(int a){ if(a >= 10) printInt(a / 10); cout -0.0000001 && a....
分类:
编程语言 时间:
2014-11-20 06:47:07
阅读次数:
138
本文将给出求两个数a和b的最大公约数的几种可行方法。 方法一:辗转相除法 算法分析:有两个数a和b,用辗转相除法。 不妨设a>b, 首先求a和b的余数,b赋值给a,余数赋值给b; 重复以上操作,直到余数为0; b值即为两数的最大公约数。代码: 1 int zdgys(int a,int b) 2 ....
分类:
其他好文 时间:
2014-11-19 21:46:38
阅读次数:
239
算法分析:
本题是拓扑排序的典型应用。
由于顶点数量不多,可以采用邻接矩阵来存储图信息,这样算法比较简单,只需要搜索n次,每次把序号最小的入度为0的顶点存储到拓扑序列中就行了。算法思路比较清晰,代码也比较简洁,但时间复杂度和空间复杂度都较高。
另一种方法是采用邻接表存储图信息。由于题目要求输出时编号小的队伍在前,所以在入栈时一定要保证先让序号最小的入度为0的顶点在栈顶,这样根据后进先出的特点,可以把序号最小的顶点存储到拓扑序列中。我采用折半插入排序的方法,把入度为0的顶点按递减序排序,然后对图进行深度优先...
分类:
其他好文 时间:
2014-11-19 16:05:59
阅读次数:
174