个人认为,数据结构与算法是部分程序员的软肋,而对于非科班出身的程序员来说,更是软肋中的软肋。纠其原因,大部分是因为作为应用层面的程序开发,算法(尤其是查找算法)并不是影响程序性能的最关键的因素。同时作为一个完整的系统,从数据存储到获取都提供了相应的调用接口,如果要获取数据,我们只需要调用外部接口就可...
分类:
编程语言 时间:
2015-04-12 19:15:42
阅读次数:
223
不知道大家在刚开始看《数据结构与算法分析——C语言描述》散列一章的时候,能不能理解书上的内容,小ZZ看的时候就没怎么看明白。于是就去问度娘,度娘给了我这样一篇文章。里面介绍了散列的基本定义以及常用的实现方法,比较通俗易懂(可能是智商有点拙计)。
http://blog.csdn.net/u010275850/article/details/44963701
先看完了这篇博文,然后再看书上的...
分类:
其他好文 时间:
2015-04-12 13:28:33
阅读次数:
172
在数据结构与算法中,给我们介绍了常用的几种数据结构:数组,链表,哈希表。
数组结构:其在内存分配是一段连续的内存空间,可能会占用内存空间严重,空间复杂度很大,时间复杂度小,其优点是易于寻址,但是插入、删除困难。
链表结构:其在内存分配是一系列离散的内存空间,占用内存少,空间复杂度很小,时间复杂度很大,其优点是易于插入和删除,寻址困难。
哈希表:哈希表是集合数组和链表的存储结构,满足寻址方便,易于操作,占用内存空间较小,时间复杂度有较小。其例如下:
...
分类:
其他好文 时间:
2015-04-11 20:54:44
阅读次数:
144
一直以来都是从博客园吸收营养,很想有机会写一些对博友们有用的文章,来回馈大家的无私奉献。最近博主在找工作,听小伙伴们说,数据结构与算法是必考项。于是痛下绝心决定写写排序算法。以备自查,同时与小伙伴们互勉。欢迎大家转载,如有错误,请指正。必感激不尽!学习交流qq:792911374,闲话不说,开始正文...
分类:
编程语言 时间:
2015-04-11 19:24:30
阅读次数:
126
出自数据结构与算法分析--C语言描述 习题2.7在有个函数int rand(int n)返回1-n之间的随机数。如何把数组A[N]打乱?最初的Fisher–Yates算法是在另外开辟一个数组B[N],把打算后的A[N]放到B[N]中,步骤如下设i=01、生成1-A.length长度之间的随机数k2、...
分类:
编程语言 时间:
2015-04-09 19:37:43
阅读次数:
148
最近看《数据结构与算法分析》一书,书中提供的一些算法太棒了,忍不住动手实现了下。有错误请指出,谢谢。
最大子序列问题求解:1.第一种解法:int MaxSubSequence(const int array[], int length){
if (length < 0) //数组长度不可以为0.
return 0;
int MaxSum = 0,ThisSum;...
分类:
编程语言 时间:
2015-04-09 13:45:40
阅读次数:
144
关于栈的基本概念以及和Catalan数的关系,可以参见我的其他文章
参考资料《数据结构与算法分析——C语言描述》
#include
#include
/*栈的链表实现*/
typedef struct StackNode
{
struct StackNode *next;
int data;
}StackNode,*Stack;
Stack CreateStack(...
分类:
其他好文 时间:
2015-04-08 23:29:30
阅读次数:
354
参考资料:《数据结构与算法分析——C语言描述》4.3一节
#include
#include
#define N 10
typedef struct BinTreeNode
{
int data;
struct BinTreeNode *left;
struct BinTreeNode *right;
}BinTreeNode,*BinTree;
BinTree in...
分类:
其他好文 时间:
2015-04-07 21:39:31
阅读次数:
133
最近在读《数据结构与算法分析(C语言描述)》,在优先队列(堆)一节中,作者总结了关于“选择问题——求第k个最大的元素”的几种思路,在此简单总结一下:第一种将这NN个数读进一个数组中,再通过某种简单的算法,比如冒泡排序、选择排序等,以递减顺序将数组进行排序,然后返回位置kk上的元素。假设使用最简单的排序算法,则运行时间为O(N2)O(N^2)第二种这是对第一种算法的简单优化。申请一个大小为kk的数组,...
分类:
其他好文 时间:
2015-04-06 17:16:51
阅读次数:
132