最近在读《数据结构与算法分析(C语言描述)》,在优先队列(堆)一节中,作者总结了关于“选择问题——求第k个最大的元素”的几种思路,在此简单总结一下:第一种将这NN个数读进一个数组中,再通过某种简单的算法,比如冒泡排序、选择排序等,以递减顺序将数组进行排序,然后返回位置kk上的元素。假设使用最简单的排序算法,则运行时间为O(N2)O(N^2)第二种这是对第一种算法的简单优化。申请一个大小为kk的数组,...
分类:
其他好文 时间:
2015-04-06 17:16:51
阅读次数:
132
以前看数据结构与算法分析(C语言描述),作者在讲述算法分析时提到递归计算斐波那契数列,
时间复杂度T(N) = T(N-1) + T(N-2);
作者说归纳法易证得T(N) >= Fib(N);而Fib(N) = (3/2)^(N)
这个地方作者处理得有些不太彻底,不是吗?翻来覆去没把Fib(N)准确求出,今天我翻看另一本资料,
更模糊了,它求得2^(N/2) < T(N) < 2^(N)就完事了。
不过今天我开窍了,T(N) = T(N-1) + T(N...
分类:
其他好文 时间:
2015-04-01 15:33:37
阅读次数:
172
自学数据结构已经很久了,使用的教材是《数据结构与算法分析——C语言描述》。现在回过头来再看一遍此书,重新梳理一下数据结构的相关知识。
以下是摘自维基百科的一些树的基本分类:
无序树:树中任意节点的子节点之间没有顺序关系,这种树称为无序树,也称为自由树;有序树:树中任意节点的子节点之间有顺序关系,这种树称为有序树;
二叉树:每个节点最多含有两个子树的树称为二叉树;
完全二...
分类:
其他好文 时间:
2015-03-30 09:34:06
阅读次数:
317
主要是学习资料《数据结构与算法分析》(Weiss)的习题除去习题外,每一章主要用到的数据结构先会写一个版本放上来,包括数据结构代码与测试用代码这种先行上传的代码只具有基本的功能,毕竟一方面有些功能在习题中会出现,另一方面目的只在于熟悉逻辑而不是完整地去实现一个库啥的……这些数据结构之前基本上都用C写...
分类:
其他好文 时间:
2015-03-11 07:04:15
阅读次数:
104
根据《数据结构与算法分析——Java语言描述》一书的顺序来总结的。插入排序(insertion sort)希尔排序(Shellsort)堆排序(heapsort)并归排序(mergesort)快速排序(quicksort)桶式排序(bucketsort)外部排序(external sorting)...
分类:
编程语言 时间:
2015-02-15 21:49:05
阅读次数:
178
这一章主要内容:
* 抽象数据类型(ADT)的概念
* 实现表/栈/队列
* 了解这三个数据结构的应用场景
1. ADT
ADT: abstract data type, 是抽象的数学模型,在该模型上定义了一系列的操作。使用它的人,不需要了解它的存储方式,只关心它的逻辑特征。可以使用三元组的方法来表示(D,S,P),D是数据对象,S是数据之间的关系,P是对数据的基本操作,具体介绍,可以参...
分类:
编程语言 时间:
2015-02-02 21:35:51
阅读次数:
222
声明:这个系列博客是《数据结构与算法分析 C++描述》的读书笔记系列
参考博客:点击打开链接
本文是原书第二章内容,主要内容包括:算法的时间复杂度分析/算法的优化,分析的例子是很出名的最大子序列求和问题。
分为了四种方法来求解:穷举/穷举优化/递归(分治)/联机算法(动态规划), 算法复杂度为O(N^3)/O(N^2)/O(N*logN)/O(N). 思路都在具体代码里
---------...
分类:
编程语言 时间:
2015-01-24 14:31:54
阅读次数:
184
求一组N个数中的第k个最大者,设k=N/2. 1 import java.util.Random; 2 3 4 public class K_Max { 5 6 /** 7 * @param args 8 */ 9 //求第K大的数,保证K大于等于1,小于等...
分类:
编程语言 时间:
2015-01-11 23:03:10
阅读次数:
380
1、当一个函数用它自己来定义时就称为递归的。C允许函数是递归的。但重要的是:C提供的仅仅是遵循递归思想的一种企图。不是所有的数学递归函数都能有效地(或正确地)由C的递归模拟来实现。int Bad(unsigned int N){ if (N == 0) { return 0...
分类:
编程语言 时间:
2015-01-11 22:54:12
阅读次数:
212
题目一: 不含头结点的单链表转置,算法时间复杂度O(N)代码如下:struct LNode;typedef struct LNode *List;typedef struct LNode *Position;struct LNode{ ElementType elem; Position...
分类:
编程语言 时间:
2015-01-09 22:08:37
阅读次数:
234